level 1
大约看了下回复的思路:流程就是遍历像素 然后比较每个像素点3通道的值啊 既然是绿色那当然是中间那个通道的值要远大于其他通道的值。。。程序的思路就是这样。
另外楼上有人指点告诉你思路已经很够意思了,还指望别人硬生生专门给你写个程序,贴吧不是劳务市场,卤煮伸手也得有个限度吧。
2015年12月09日 07点12分
11
思路我很懂啊
2015年12月09日 09点12分
@自由人+ 感谢指点,我用的是绿色那当然是中间那个通道的值要远大于其他通道的值这个原理,差不多实现了
2015年12月09日 09点12分
麻烦问一下层主,远大于怎么表示?
2015年12月09日 15点12分
level 9
#include<iostream>
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
using namespace cv;
int main()
{
Mat img = imread("pic1.jpg");
imshow("原画", img);
waitKey(0);
for (int row = 0; row < img.rows; row++)
{
for (int col = 0; col < img.cols; col++)
{
if (((img.at<Vec3b>(row, col)[1] - img.at<Vec3b>(row, col)[0]>65))
&& ((img.at<Vec3b>(row, col)[1] - img.at<Vec3b>(row, col)[2]>65)))
img.at<Vec3b>(row, col) = Vec3b(0, 0, 0);
}
}
imshow("新图", img);
waitKey();
return 0;
}
2015年12月15日 07点12分
14
level 1
朋友,我遇到了和你一样的问题,就是想把背景的绿色去除掉而已,
但是从头开始遍历像素,怎么来判断该点像素是不是绿色,谢谢!
2016年06月03日 07点06分
15