OpenCV(C ++)-设置像素的HSV值

Gambit2007

我有一个RGB图像,我将其转换为HSV,我的目标是将不满足特定色相值(100)的每个像素设置为黑色。因此,H = S = V = 0。

我有以下代码:(frame3是HSV Mat图像,色相= 100)

    for (int i = 0; i<frame3.rows; i++)   
    {
        for (int j = 0; j<frame3.cols; j++)
        {
            Vec3b hsv = frame3.at<Vec3b>(i, j);
            int H = hsv.val[0]; //hue
            int S = hsv.val[1]; //saturation
            int V = hsv.val[2]; //value
            if (H != hue) {
                H = 0;
                S = 0;
                V = 0;
            }

        }
    }
    imshow("Processed Hue", frame3);
}

但是,当我运行它时,什么也没发生。图像保持不变。当我尝试将hsv.val [0]值打印到控制台时,我收到了字母,而不是数字..所以我认为问题出在哪里,但我仍然不知道如何解决。

任何帮助将不胜感激!谢谢!

三木

你可以:

  • 建立一个maskH通道等于100的通道,无论S,V通道的值如何(带有inRange
  • frame3根据掩码设置为零(带有setTo

就像是:

Mat frame3; // CV_8UC3, HSV image

Mat mask;
inRange(frame3, Scalar(100,0,0), Scalar(100, 255, 255), mask);

frame3.setTo(Scalar(0,0,0), mask);

为了保持代码结构,您需要修改实际值,而不是该值的副本。您可以这样做,保留对值的引用:

 Vec3b& hsv = frame3.at<Vec3b>(i, j);
 if (hsv[0] != hue) {
    hsv[0] = 0;
    hsv[1] = 0;
    hsv[2] = 0;
 }  

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在 OpenCV 中设置像素值(奇怪的结果)

来自分类Dev

在openCV中设置特定图像中像素的RGB值

来自分类Dev

Opencv C ++错误,无法获取某些像素的像素强度值

来自分类Dev

C ++:OpenCV:快速像素迭代

来自分类Dev

OpenCV读取图像像素值

来自分类Dev

OpenCV获取像素颜色值

来自分类Dev

OpenCV获取像素颜色值

来自分类Dev

如何从C ++中的十六进制颜色值获取OpenCV HSV值?

来自分类Dev

如何将OpenCV Mat的所有像素设置为特定值?

来自分类Dev

如何将OpenCV Mat的所有像素设置为特定值?

来自分类Dev

在 OpenCV 中未正确设置像素

来自分类Dev

OpenCV / C ++-编辑所有孤立的像素

来自分类Dev

不扫描像素(c ++和opencv)

来自分类Dev

如何在 OpenCV 中设置 HSV 颜色范围?

来自分类Dev

如何比较两个列表,并使用C#相应地设置像素值?

来自分类Dev

OpenCV:计算新的红色像素值

来自分类Dev

OpenCV输出奇数像素值

来自分类Dev

OpenCV:获取像素的L ab值

来自分类Dev

使用OpenCV查找最近的像素值

来自分类Dev

Delphi-OpenCV-cvMat或PIplImage的像素值

来自分类Dev

显示像素值已更改的图像openCV

来自分类Dev

OpenCV:获取像素的L ab值

来自分类Dev

Delphi-OpenCV-cvMat或PIplImage的像素值

来自分类Dev

在CV :: Mat(OpenCV 4.1.2; C ++)中不会更新图像像素值

来自分类Dev

OpenCV HSV值根据屏幕/摄像机的位置而变化

来自分类Dev

OpenCV C ++:将白色像素的大块转换为黑色

来自分类Dev

OpenCV C ++中的透明像素(使用GrabCut时)

来自分类Dev

OpenCV HSV奇怪的转换

来自分类Dev

Opencv:RGB到HSV