Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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
是";“颜色量化”;OpenCV中颜色量化的正确名称?_Opencv_Colors_Quantization - Fatal编程技术网

是";“颜色量化”;OpenCV中颜色量化的正确名称?

是";“颜色量化”;OpenCV中颜色量化的正确名称?,opencv,colors,quantization,Opencv,Colors,Quantization,我正在寻找一种方法,使用OpenCV获得给定图像中每个像素的所有RGB值的完整列表,现在我称之为“颜色量化” 问题是,根据我在网上的发现,至少在这一点上,“颜色量化”是关于直方图或“颜色减少”或类似的离散计算解决方案 因为我知道我想要什么,而“互联网”似乎对这个词的意思有不同的看法,我想知道:也许没有真正的解决办法?OpenCV库中的一种可行方法或工作算法。颜色量化是在有限的数字颜色空间中转换无限的自然颜色。无论如何,要创建一个全彩“直方图”,您可以使用opencv的稀疏矩阵实现,并编写自己的函

我正在寻找一种方法,使用OpenCV获得给定图像中每个像素的所有RGB值的完整列表,现在我称之为“颜色量化”

问题是,根据我在网上的发现,至少在这一点上,“颜色量化”是关于直方图或“颜色减少”或类似的离散计算解决方案


因为我知道我想要什么,而“互联网”似乎对这个词的意思有不同的看法,我想知道:也许没有真正的解决办法?OpenCV库中的一种可行方法或工作算法。

颜色量化是在有限的数字颜色空间中转换无限的自然颜色。无论如何,要创建一个全彩“直方图”,您可以使用opencv的稀疏矩阵实现,并编写自己的函数来计算它。当然,如果没有关于图像的其他结构或连续性信息,则必须逐个访问像素。

一般来说,量化是一种将具有真实(数学)值的输入信号转换为一组离散值的操作。实现此过程的一种可能算法是计算数据的直方图,然后保留与具有较高总体的直方图的n个箱子相对应的n个值

您正在尝试的操作将被称为“颜色列表”。
如果您正在使用8位量化图像(键入
CV_8UC3
),我猜您可以通过获取输入图像的直方图(仓位宽度等于1)然后搜索非空仓位的结果来完成所需操作。

不是每个像素都只有一个R,G,与之相关的B值?@perfanoff请记住,我想要一个RGB值及其相关百分比的列表,而不仅仅是一个像素值。可能的重复:@volting逐像素访问这与我想象的不完全一样,基本上也需要一个适当的数据结构,我没有在这种方法中使用任何特定的OpenCV方法。我希望在OpenCV方面有一个非常有效的算法。所以你只需要一个所有RGB值百分比正确的列表?OpenCV能够根据给定图像采用的颜色模型管理和触发不同的操作吗?例如,检测图像是否使用sRGB、Adobe RGB或CMYK?默认情况下,否。但您应该能够从文件的EXIF中读取该图像并相应地采取行动。顺便说一句,opencv使用BGR格式。请看,好的,谢谢,最后一件事,直方图只是图形,或者我也可以得到一个数字输出,如std::vector或std::map?要绘制直方图,您需要事先以数字形式提供数据。如果映射是已知的,它可以像数组一样简单,例如0-255灰度值->256x1yes的数组,但我想知道如何以及是否可以获得std兼容的数值表示,换句话说,是否有OpenCV方法可以做到这一点,或者OpenCV数据结构是否被授予与std数据结构兼容的权限。