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

تشخیص نواحی رنگی

+1 امتیاز

یک تصویر ساده داریم که چند تا مستطیل رنگی داره توی خودش به صورت زیر:

به چه صورت میشه هر کدام از این نواحی را تشخیص داد؟ تابع آماده داره یا باید یکی یکی پیکسل ها را بررسی کنیم ؟

سوال شده بهمن 12, 1392  بوسیله ی ابید (امتیاز 781)   19 89 106
دوباره تگ گذاری شد بهمن 22, 1392 بوسیله ی BlueBlade

1 پاسخ

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

چون رنگ ها به کلی اشباع شده شما می تونید تصویر را از فضای رنگی RGB به HSV برده و از کانال saturation استفاده کنید.

	Mat color_img = imread("d:\\test.png",1);
	imshow("view",color_img);waitKey(0);

	Mat hsv_img;
	cvtColor(color_img,hsv_img,CV_BGR2HSV);
	vector<Mat> imgs;
	split(hsv_img,imgs);

	imshow("view",imgs[1]);waitKey(0);

	
	vector<vector<Point>> contours;
	findContours(imgs[1],contours,CV_RETR_EXTERNAL,CV_CHAIN_APPROX_SIMPLE);

	drawContours(color_img,contours,-1,Scalar::all(0),2);
	imshow("view",color_img);waitKey(0);

 

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