Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.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
Python 3.x 如何传递RGB信息对图像进行阈值化_Python 3.x_Opencv_Image Processing_Image Thresholding - Fatal编程技术网

Python 3.x 如何传递RGB信息对图像进行阈值化

Python 3.x 如何传递RGB信息对图像进行阈值化,python-3.x,opencv,image-processing,image-thresholding,Python 3.x,Opencv,Image Processing,Image Thresholding,我正在使用UnrealCV从Unreal引擎获取蒙版图像和RGB图像。在这里,我还使用来自遮罩图像的非LCV获取对象的颜色信息(R、G、B)。现在,我想知道如何将这个RGB信息传递给OpenCV来进行阈值处理 我现在正在做这件事,将遮罩图像转换成灰度图像,然后做阈值处理。但我不想这么做。我已经检查了,但这里的图像范围已经使用,我也不想这样做。就像在蒙版图像中一样,每个对象都有其唯一的颜色信息,所以我只想通过从蒙版图像发送所需对象的RGB信息来更具体,然后告诉OpenCV对我发送到OpenCV阈值

我正在使用UnrealCV从Unreal引擎获取蒙版图像和RGB图像。在这里,我还使用来自遮罩图像的非LCV获取对象的颜色信息(R、G、B)。现在,我想知道如何将这个RGB信息传递给OpenCV来进行阈值处理

我现在正在做这件事,将遮罩图像转换成灰度图像,然后做阈值处理。但我不想这么做。我已经检查了,但这里的图像范围已经使用,我也不想这样做。就像在蒙版图像中一样,每个对象都有其唯一的颜色信息,所以我只想通过从蒙版图像发送所需对象的RGB信息来更具体,然后告诉OpenCV对我发送到OpenCV阈值函数的颜色进行阈值化

用于获取RGB信息的代码为--

它会给遮罩颜色,然后我想把它传递给OpenCV进行阈值处理


我希望它会像现在在灰度图像上一样进行阈值处理,然后我将使用阈值图像进行轮廓操作。

在灰度图像中,阈值处理将暗像素和亮像素分开,即将灰度范围分成两个子间隔。这是基于(天真的)前提,即感兴趣的对象由最亮(或最暗)的颜色组成

一种稍微合乎逻辑的方法是考虑由两个阈值(平均色±max变化)定义的子区间内的像素值。如果感兴趣的对象有几种不同的颜色,则每种颜色对应于灰度值的间隔,并且这些颜色将重叠或不重叠。实际上,这种方法效果很差,因为场景中的许多其他特征可能具有相同的灰度

就颜色而言,事情更加复杂。统一的颜色定义RGB空间中的一个点,当您考虑到这些变化时,您可以观察具有特定形状的整个体积。如果幸运的话,形状是一个紧凑的椭球体;如果存在明暗处理和/或阴影效果,则形状可以是圆锥形的,并且更为延伸

同样,当对象由多种颜色组成时,体积可以由几种重叠或孤立的形状组成


要处理给定的应用程序,必须了解与对象对应的RGB云的形状,并找到合适的几何描述。作为第一近似值,您可以使用具有给定中心和范围的立方体或球体。

您的问题极难理解。如果显示遮罩图像的形状和内容、要设置阈值的图像的形状和内容以及预期结果,可能会有所帮助。好的,@MarkSetchell。而最重要的是这个。我使用前面提到的UnrealCv命令从蒙版图像中获取方形框的RGB信息。现在我想把RGB信息传递给OpenCV的阈值函数。这就是全部。我只是想知道传递RGB信息进行阈值化的过程。我再重复一遍,我不想把我的蒙版图像转换成灰度图像或任何其他格式。我还是不明白。你的面具上似乎有三种颜色——黑色、桃色和丁香色。还有一张照片,是以天空为背景的斜坡上的一些洗碗机平板电脑。接下来会发生什么?你为什么不想用灰度呢?啊,好的,我正在清理视野。不会有三条等高线。我从虚幻引擎中知道方形盒子的名字。因此,我将使用名称来获取颜色信息,它是完全唯一的。看看这个命令
get\u mask\u color=client.request('vget/object/object\u name/color')
它只会给我方框的颜色。然后我想传递这个RGB值来做阈值处理。我不想使用灰度,因为有时从蒙版图像转换为灰色后,我想要的对象与背景混合,然后很难进行阈值>查找轮廓。不清楚为什么知道框的名称很重要,为什么重要的是它来自于虚幻的引擎,为什么重要的是某些东西是独一无二的。你想干什么?你能说一个简单的句子吗?“只要面具是黑色的,我就要做XYZ。只要面具是桃红色的,我就要做ABC…”
get_mask_color= client.request('vget /object/object_name/color')