Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在特定颜色范围内对图像进行阈值化_C++_Opencv_Image Processing_Image Segmentation - Fatal编程技术网

C++ 在特定颜色范围内对图像进行阈值化

C++ 在特定颜色范围内对图像进行阈值化,c++,opencv,image-processing,image-segmentation,C++,Opencv,Image Processing,Image Segmentation,我有一个形象: 我想为棋子创建一个二进制掩码,并将背景设置为黑色。我知道我必须使用inRange()函数,然后使用按位操作,但我不知道如何获取此图像中棋子的颜色范围 编辑 以下是更多的样本: 有些应用程序可以给出特定颜色的hsv值,例如。 您可以将此作为起点,然后继续使用老式的试错方法,以获得完美的过滤器。下面的教程将inrage功能与轨迹栏相结合。这允许动态更改inrage过滤器,从而更容易找到所需的treshold 有些应用程序可以给出特定颜色的hsv值,例如。 您可以将此作为起点,然后

我有一个形象:

我想为棋子创建一个二进制掩码,并将背景设置为黑色。我知道我必须使用
inRange()
函数,然后使用
按位
操作,但我不知道如何获取此图像中棋子的颜色范围

编辑 以下是更多的样本:


有些应用程序可以给出特定颜色的hsv值,例如。 您可以将此作为起点,然后继续使用老式的试错方法,以获得完美的过滤器。下面的教程将inrage功能与轨迹栏相结合。这允许动态更改inrage过滤器,从而更容易找到所需的treshold


有些应用程序可以给出特定颜色的hsv值,例如。 您可以将此作为起点,然后继续使用老式的试错方法,以获得完美的过滤器。下面的教程将inrage功能与轨迹栏相结合。这允许动态更改inrage过滤器,从而更容易找到所需的treshold


compute/draw可以让您了解颜色范围。。。如果你裁剪出尽可能大的纯背景区域(棋盘)并获得平均HSV值,然后裁剪出尽可能大的兵(士兵)区域,有时最好将背景颜色而不是对象(使用更稳定的颜色/结果…)在没有任何棋盘的情况下,再次获得该区域的平均HSV,您将看到,通过使用色调分量,两者很容易区分,而在RGB颜色空间中,它们很难区分。您可以发布更多图像吗?在发布答案之前,我想在更多的图片上测试我的建议。@Miki,我在上一次编辑中做了,谢谢。嗯,你的图像非常不同:1)背景色不是一个棋盘格,2)棋子有不同的颜色,照明3)棋子可能有一些像素具有相同的背景色。底线是,你将无法用一个简单的
inRange
来分割这幅作品。计算/绘制应该会让你了解颜色的范围。。。如果你裁剪出尽可能大的纯背景区域(棋盘)并获得平均HSV值,然后裁剪出尽可能大的兵(士兵)区域,有时最好将背景颜色而不是对象(使用更稳定的颜色/结果…)在没有任何棋盘的情况下,再次获得该区域的平均HSV,您将看到,通过使用色调分量,两者很容易区分,而在RGB颜色空间中,它们很难区分。您可以发布更多图像吗?在发布答案之前,我想在更多的图片上测试我的建议。@Miki,我在上一次编辑中做了,谢谢。嗯,你的图像非常不同:1)背景色不是一个棋盘格,2)棋子有不同的颜色,照明3)棋子可能有一些像素具有相同的背景色。底线是,您将无法在Range中使用简单的
分割片段。