将位图颜色映射到单独的位图c#

时间:2015-02-21 13:25:52

标签: c# colors bitmap

我一直致力于一个采用tiff图像的程序,并将图像分成彩色图层,具体取决于它有多少种不同的颜色,每个图像可以有3到24种主色,但我发现有轻微的颜色颜色的变化使得难以分离各层,我最终映射了一个图像具有的所有颜色

例如:这只是一种颜色,主要颜色是ARGB 255,25,176,235,这是浅蓝色

        mapList.Add(new KeyValuePair<Color, Color>(Color.FromArgb(255, 30, 175, 222), Color.FromArgb(255, 25, 176, 235)));
        mapList.Add(new KeyValuePair<Color, Color>(Color.FromArgb(255, 32, 180, 240),Color.FromArgb(255, 25, 176, 235)));
        mapList.Add(new KeyValuePair<Color, Color>(Color.FromArgb(255, 20, 173, 229),Color.FromArgb(255, 25, 176, 235)));
        mapList.Add(new KeyValuePair<Color, Color>(Color.FromArgb(255, 18, 174, 237),Color.FromArgb(255, 25, 176, 235)));
        mapList.Add(new KeyValuePair<Color, Color>(Color.FromArgb(255, 29, 175, 222), Color.FromArgb(255, 25, 176, 235)));
        mapList.Add(new KeyValuePair<Color, Color>(Color.FromArgb(255, 29, 179, 239),Color.FromArgb(255, 25, 176, 235)));

id然后遍历所有像素,将变体颜色更改为主颜色,这工作正常,但它不是一个算法,理想情况下我想将位图颜色更改为其最接近的已知颜色,Ive尝试量化然后使用欧几里德距离颜色之间(公差需要相当宽),余弦角(矢量是小RGB 1,1,1比2,2,2更接近11,11,11)。我曾尝试将其更改为GIF和PNG,但它们似乎有更多的颜色和质量下降。性能不是一个问题,因为我使用lockbits所以我不关心我有多少次迭代位图。我不是要求代码,甚至不是写一个算法,只是指向正确的方向。此致

0 个答案:

没有答案