【发布时间】:2018-08-27 02:12:19
【问题描述】:
我想使用 OpenCV & objc++ 从图像中提取特定颜色,所以我遵循了这个tutorial。 “算法”的很大一部分已经在起作用,但它仍然会遇到一些问题:
这是我想提取不同颜色区域的图像:
在图像上应该应用简单的颜色提取来获得正确的彩色区域(在一种情况下只是红色区域,在另一种情况下可能只是蓝色立方体)。
使用我的代码(我在下面添加)这是我提取红色立方体的结果:
但我似乎找不到提取不同颜色的有效方法(比如只提取蓝色立方体)
查看我的红色立方体提取代码:
cv::Scalar min(220/2, 190, 80);
cv::Scalar max(260/2, 255, 255);
cv::Mat threshold_frame;
cv::inRange( tempMatHSV, min, max, threshold_frame);
cv::Mat str_el = cv::getStructuringElement(cv::MORPH_RECT, cv::Size(3, 3));
morphologyEx(threshold_frame, threshold_frame, cv::MORPH_OPEN, str_el);
morphologyEx(threshold_frame, threshold_frame, cv::MORPH_CLOSE, str_el);
任何帮助如何编辑 标量参数 以获得蓝色匹配将不胜感激
【问题讨论】:
-
您采取了哪些步骤来检测蓝色?
-
我刚刚编辑了最小-最大参数到蓝色 HSV 颜色值,但它似乎不起作用,因为没有检测到蓝色 - 图像全黑! @ZdaR
-
教程中的最小值和最大值完全相同,而您的代码给出了不同的结果,这很奇怪。在本教程中,这些值用于检索蓝色,但您的代码检索红色。您确定提供的代码会产生提供的掩码吗? 220 - 260 色调值用于蓝色,而不是红色。
标签: javascript image opencv colors objective-c++