gpt4 book ai didi

c++ - 难以使用 openCV 检测某些颜色

转载 作者:太空宇宙 更新时间:2023-11-03 23:17:41 25 4
gpt4 key购买 nike

我有一个项目,我必须在许多树叶图片中检测 3 种特定颜色:绿色、黄色和棕色。

我以下图为例:

enter image description here

检测不同颜色的目的是确定树是否生病,因此能够正确分辨什么是绿色、黄色和棕色非常重要,即使是在少量像素中也是如此。

我写了下面的代码:

//Load the image
Mat img_bgr = imread("c:\\testeimagem\\theeye\\greening32.jpg", 1);
if (img_bgr.empty()){
cout << "Nenhuma imagem foi carregada..." << endl;
return -1;
}

//Display the image
namedWindow("Original Image", WINDOW_NORMAL);
imshow("Original Image", img_bgr);
waitKey(0);
destroyAllWindows;

//Conversion to HSV
Mat img_hsv;
cvtColor(img_bgr, img_hsv, CV_BGR2HSV_FULL);

//Extracting colors - HSV
Mat cores_divididas, green, yellow, brown;

//Yellow
inRange(img_hsv, Scalar(28, 240, 240), Scalar(33, 255, 255), yellow);
imwrite("c:\\testeimagem\\theeye\\yellow.jpg", yellow);

//Green
inRange(img_hsv, Scalar(38, 100, 100), Scalar(70, 190, 190), green);
imwrite("c:\\testeimagem\\theeye\\green.jpg", green);

//Brown
inRange(img_hsv, Scalar(10, 90, 90), Scalar(20, 175, 175), brown);
imwrite("c:\\testeimagem\\theeye\\brown.jpg", brown);

namedWindow("Yellow", WINDOW_NORMAL);
imshow("Yellow", yellow);

namedWindow("Green", WINDOW_NORMAL);
imshow("Green", green);

namedWindow("Brown", WINDOW_NORMAL);
imshow("Brown", brown);

waitKey(0);
destroyAllWindows;

return 0;

如果你们编译这段代码,您会注意到绿色没有被正确检测到,其他颜色根本没有被检测到。

作为引用值指南,I used this trackbar .

最佳答案

试试这些范围:

//Yellow
inRange(img_hsv, Scalar(28, 0, 0), Scalar(33, 255, 255), yellow);
imwrite("yellow.jpg", yellow);

//Green
inRange(img_hsv, Scalar(38, 0, 0), Scalar(70, 255, 255), green);
imwrite("green.jpg", green);

//Brown
inRange(img_hsv, Scalar(10, 0, 0), Scalar(20, 255, 255), brown);
imwrite("brown.jpg", brown);

在您的叶子图像上,似乎根本没有棕色色素。我用这片叶子测试了它,Brownish leaf, 看起来不错。

我尝试这些范围的原因是真实的颜色信息(如果我错了请纠正)嵌入到色相量中。

观察:如前所述,选择 CV_BGR2HSV。

关于c++ - 难以使用 openCV 检测某些颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36586924/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com