OpenCV - 从图像中分割树

时间:2017-01-21 18:45:08

标签: 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。 但它似乎根本不起作用。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

您正在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]。