回答
// Loop through the images pixels to reset color.
for(x=0; x<image1.Width; x++)
{
for(y=0; y<image1.Height; y++)
{
Color pixelColor = image1.GetPixel(x, y);
int grayScale = (int)((originalColor.R * .3) +
(originalColor.G * .59) + (originalColor.B * .11));
//create the color object
Color newColor = Color.FromArgb(grayScale, grayScale, grayScale);
image1.SetPixel(x, y, newColor);
}
}
轉換彩色像素灰度使用該
Gray = Green * 0.59 + Blue * 0.11 + Red * 0.30;
對於要轉換首先爲灰度深褐色。然後,只需通過一組縮放三聯如[1,0.95,0.82]你可以玩這個三重得到正確的外觀...這樣的代碼可能會...
for(x=0; x<image1.Width; x++)
{
for(y=0; y<image1.Height; y++)
{
Color pixelColor = image1.GetPixel(x, y);
int grayScale = (int)((originalColor.R * .3) + (originalColor.G * .59) + (originalColor.B * .11));
//create the color object
Color newColor = Color.FromArgb(grayScale, grayScale, grayScale);
//now apply a sepia filter
pixelColor.R = newColor.R*1;
pixelColor.G = newColor.G*0.95;
pixelColor.B = newColor.B*0.82;
image1.SetPixel(x, y, pixelColor);
}
}
有成倍的每個像素有很多方法可以去飽和彩色圖像。事實上,可能沒有一種「真實」或「正確」的方式來做到這一點,儘管有些方法比其他方法更「正確」。
我假設你的圖像是RGB(紅綠藍)格式(儘管BGR也很常見)。
最簡單的這種方式應該適用於大多數照片(但對於合成圖像來說不那麼合適),就是僅使用3個RGB通道的綠色通道。人類對光譜中綠色部分的變化最敏感,因此綠色通道覆蓋了大部分可見光範圍,並且與所需的灰度圖像非常接近。
生成灰度圖像的更好方法是使用3個RGB通道的加權平均值。選擇相等的權重(0.33 * R + 0.33 * G + 0.33 * B)將給出相當好的灰度圖像。其他凸面權重(總和爲1的非負權重)將給出不同的結果,其中一些可能被認爲更美觀,並且一些可能考慮感知參數。 (YUV uses these weights:Y = 0.299*R + 0.587*G + 0.114*B
)
您可以在圖像總是轉換成僅具有單個灰度信道(和2「顏色」信道),諸如HSV(V是灰度),YUV另一顏色空間(Y是灰度)或La(灰度)。差異不應該很大。
術語「去飽和度」來自HSV空間。如果您將圖像轉換爲HSV,請將S通道(飽和度)設置爲全零,然後渲染圖像,您將得到3通道去飽和「彩色」圖像。
將這些灰度通道複製到RGB會給你一個3通道去飽和「彩色」圖像 - 其中所有3個RGB通道是相同的。
一旦你有了這個3通道(RGB)去飽和的圖像,你可以乘以一個單獨的權重每個通道彩色圖像 - 棕褐色圖像。
給定一個灰色像素[v,v,v]
,像這樣着色:[v*a, v*b, v*c]
,例如0 <= a,b,c <=1
。
private Bitmap grayscale(Image image)
{
Bitmap btm = new Bitmap(image);
for (int i = 0; i < btm.Width; i++)
{
for (int j = 0; j < btm.Height; j++)
{
int ser = (btm.GetPixel(i, j).R + btm.GetPixel(i, j).G + btm.GetPixel(i, j).B)/3;
btm.SetPixel(i, j, Color.FromArgb(ser, ser, ser));
}
}
return btm;
}
var color = new Bitmap("file.jpg");
var bw = color.Clone(new Rectangle(0, 0, color.Width, color.Height),
PixelFormat.Format1bppIndexed);
- 1. 如何將圖像轉換爲java中的棕褐色?
- 2. SciLab中的圖像處理(將圖像轉化爲棕褐色)
- 3. 在iPhone轉換圖像爲黑白,深褐色,灰度等SDK
- 4. 在Android中將位圖轉換爲棕褐色
- 5. 通過Renderscript應用棕褐色ScriptIntrinsicColorMatrix將圖像轉換爲綠色陰影
- 6. 將圖像轉換爲黑色和白色的問題C
- 7. 棕褐色在黑莓中的圖像效果
- 8. 如何將棕褐色的弧度轉換爲度數
- 9. 使谷歌地圖插件黑/白或與棕褐色過濾器
- 10. Javascript:棕褐色或雙色調圖像效果?
- 11. Java將圖像輸出爲灰度和棕褐色
- 12. Java OpenCV:如何將彩色圖像轉換爲黑白圖像?
- 13. 在Python中處理圖像爲棕褐色色調
- 14. 更改黑色和白色的圖像顏色和棕褐色按鈕點擊使用jquery
- 15. 清理棕褐色(x)的
- 16. 將JPEG圖像轉換爲黑白
- 17. 將灰度圖像轉換爲黑白
- 18. 如何將普通視圖顏色更改爲棕褐色?
- 19. Python - 刪除(轉換爲白色)圖像的非黑色像素
- 20. 如何減少當我將普通圖像轉換爲棕褐色圖像時的時間消耗?
- 21. GDI System.Drawing.Printing將白色轉換爲黑色
- 22. easeljs棕褐色和灰度
- 23. ImageMagick棕褐色效果
- 24. 棕褐色45給我0.9999
- 25. 將視頻音調變成棕褐色
- 26. 棕褐色在相機預覽視圖
- 27. imagecopyresampled將圖像轉換爲黑色
- 28. 如何將彩色TIFF圖像轉換爲黑白使用BitMiracle.LibTiff.Silverlight.dll
- 29. 將彩色指紋圖像轉換爲黑白
- 30. 徘徊時獲取棕褐色效果圖像和全綵色?
爲什麼這些值乘以組件?這是否給棕褐色?我懷疑它的確存在,但一個解釋會很有用。 – ChrisF
紅色(255,0,0)綠色(0,255,0)藍色(0,0,255)他們一起製造255,255,255的白色。如果您使用純RGB的上述公式進行計算,則結果接近255。 – hungryMind