نگهداشتن اطلاعات Mat در بازه مشخص - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

نگهداشتن اطلاعات Mat در بازه مشخص

+1 امتیاز
سلام بردوستان سایت. یک تصویر اعشاری دارم که مقدار 300 تا 1500 تغییر می کنه چیزی که من نیاز دارم فقط مقدار 500 تا 1000 باقی بمونه و بقیه مقادیر با صفر پرکنم .من توی کتابخانه فقط تابع threshold را دیدم و هر کاری می کنم نمی تونم جواب بگیرم آیا OpenCV تابعی برای انجام این کار داره؟
سوال شده اسفند 2, 1392  بوسیله ی مریم اکرمی (امتیاز 482)   25 55 66

1 پاسخ

+3 امتیاز
 
بهترین پاسخ

از تابع inRange برای بدست آوردن ماسکی در بازه مورد نظر استفاده کنید و سپس ماسک خود را inverse کرده و با مقدار صفر پر کنید.

	Mat img(500,500,CV_32FC1);
	randu(img,Scalar::all(300),Scalar::all(1500));
	Mat mask;
	cv::inRange(img,Scalar::all(500),Scalar::all(1000),mask);
	bitwise_not(mask,mask);
	img.setTo(0,mask);

 

پاسخ داده شده اسفند 7, 1392 بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
انتخاب شد اسفند 16, 1392 بوسیله ی haniye sarbazi
...