c++ - OpenCV - 从图像分割树

标签 c++ image opencv image-processing

我正在尝试在 HSV 颜色空间中分割绿色。我有一棵树的图像,我只希望保留树的上半部分。

enter image description here

这是我开始的图像,我获得的蒙版只是一个全黑的图像 这是我当前的代码:

Mat input = imread(image_location);
imshow("input img",input); waitKey(0);


//convert image to HSV
Mat input_hsv;
cvtColor(input,input_hsv,COLOR_BGR2HSV);


vector<Mat>channels;
split(input_hsv, channels);

Mat H = channels[0];
Mat S = channels[1];
Mat V = channels[2];

Mat mask2;

inRange(input_hsv, Scalar(70, 0, 0), Scalar(143, 255, 255), mask2);


imshow("mask2", mask2);waitKey(0);

通常,HSV 中的绿色范围为 +/- 70 到 140。 但它似乎根本不起作用。有人可以帮忙吗?

最佳答案

您正在 8U 中工作。因此,通常以度为单位的 H 分量 [0,360) is compressed to fit 255 by halving .

查看文档:8 位图像:V←255V、S←255S、H←H/2(适合 0 到 255)

所以原来的 H 绿色范围 [70,140] 应该减半到 [35,70]。

关于c++ - OpenCV - 从图像分割树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41783104/

相关文章:

php - 如何让图片不拉伸(stretch)

分类前图像居中?

python - 给视频捕获增加X延迟

使用 OpenCV 进行图像比较以确定交通密度

c++ - 匹配表达式,但不匹配以#开头的行

c++ - 如何在不调用实现定义的行为的情况下将二进制数据写入文件?

C++ vector 大小为零

java - 将彩色图像转换为背景/白色图像

c++ - 在 RPI 上编译 ROS 在 opencv 上失败, undefined reference 'header'

c++ - 使用 CImg : LNK1181: cannot open file "m.lib" on windows 7 x64