2017-04-02 31 views
0

是否有可能寫一個5x5的內核來處理有限的色彩範圍成爲品種齊全?圖像濾波器內核擴展16-235有限顏色範圍

這是我的樣本黑白的內核,我不知道是什麼值使用,並在那裏達到這個顏色擴展:

灰度

{ 0.3, 0.3, 0.3, 0.0, 0.0 } 
{ 0.6, 0.6, 0.6, 0.0, 0.0 } 
{ 0.1, 0.1, 0.1, 0.0, 0.0 } 
{ 0.0, 0.0, 0.0, 1.0, 0.0 } 
{ 0.0, 0.0, 0.0, 0.0, 1.0 } 

我想RGB色彩擴展16位RGB 235 => 0-255

但是我需要內核矩陣,因爲我沒有處理圖像,但是我將矩陣傳遞給了Windows API函數(未記錄:SetMagnificationDesktopColorEffect)。

我不能做一個簡單的減法/分/乘上的像素。我沒有他們。

+0

我沒有辦法測試,但我想你會把'16'也許'-16',在第4行的前3種元素作爲偏移,和255 /(235-16 )在前3個對角元素中作爲乘數。 http://www.graficaobscura.com/matrix/index.html和https://docs.rainmeter.net/tips/colormatrix-guide/ –

+0

255 /(235-16),而不是前三個對角1,減輕了圖像,然而,第四行中的-16/16(或任何與1.0偏離很多的東西)將圖像完全分解,使其幾乎變白或變黑。 –

回答

1

基本上可以通過減去從圖像中16,然後除以219.然後,你將有標準化爲1倍的圖像,你必須通過255相乘得到255強範圍表示做沒有內核。

+0

我知道,但我的應用程序沒有完成處理。這個矩陣被傳遞給一個未記錄的windows API函數,該函數將該效果應用於桌面管理器。它在user32.dll中被稱爲SetMagnificationDesktopColorEffect。我需要矩陣傳遞給它。 –

+0

澄清問題。 Sorry.But +1的努力 - 你居然回答這是不是足夠好界定:) –

+0

這是不可能的,因爲內核函數空間濾波方法,他們不直接處理的強度,但僅通過空間座標強度每個依賴問題其他。可以將內核的所有條目設置爲0,除了中間值設置爲255/235以外,它將上限增加到255,但這不適用於下限,因爲16功能的減法不能跨越核心。 –