Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.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#_Algorithm_Image Processing_Selection - Fatal编程技术网

C# 从一大组照片中找出一张照片是否为单色/深褐色

C# 从一大组照片中找出一张照片是否为单色/深褐色,c#,algorithm,image-processing,selection,C#,Algorithm,Image Processing,Selection,我正在尝试设计一种算法,用于选择单色(摄影师称之为“黑白”)和单一色调(如深褐色)的照片。(假设你对单色图像应用了纯色滤光片)如果我只想用单色,我所需要的只是检查饱和度,这很容易(我现在正在做),但在寻找纯色单色照片时失败了。这种方法可以是什么?也许你可以看看R、G和B直方图中的值分布/模式,如果你使用photoshop之类的工具来可视化单色图像的直方图,你会发现直方图的“模式”分布在所有三个通道中都是相似的(需要标准化),而全彩图像上每个通道的分布(通常)完全不同。在大多数情况下,全彩图像可能

我正在尝试设计一种算法,用于选择单色(摄影师称之为“黑白”)和单一色调(如深褐色)的照片。(假设你对单色图像应用了纯色滤光片)如果我只想用单色,我所需要的只是检查饱和度,这很容易(我现在正在做),但在寻找纯色单色照片时失败了。这种方法可以是什么?

也许你可以看看R、G和B直方图中的值分布/模式,如果你使用photoshop之类的工具来可视化单色图像的直方图,你会发现直方图的“模式”分布在所有三个通道中都是相似的(需要标准化),而全彩图像上每个通道的分布(通常)完全不同。在大多数情况下,全彩图像可能仍然会发出单色的味道,就像photoshop中的彩虹渐变——但这是人为的,在“自然”中很可能不会经常出现摄影。

如果图像是单色的,无论是黑白还是深褐色,对应于每个亮度级别的颜色应该几乎相同。将图像颜色空间转换为包含亮度(Y)的颜色空间或亮度分量,如YCbCr或HSL,并针对每个Y/L值查看其他两个通道中的方差。如果值聚集在一起,则为单色图像。

如果图像为单色,则所有像素的饱和度都将约为0。如果图像为色调(如深褐色),所有像素将具有大致相同的色调。

想法:计算每对颜色通道之间的互相关系数。如果它们都足够接近1,则将图像声明为单色。(定义“足够接近”需要一些实验).是的,对于一张“非常彩色”的照片,每个通道的直方图几乎不可能相等。因此,这种方法在理论上应该是可行的,我将对其进行编码,看看结果如何。.从维基百科关于RGB和HSL的文章开始,我发现色度是我想要的。实现了它,效果非常好。。