灰度圖沒有彩色,它的RGB色彩分量全相等,如(100,100,100)和(200,200,200),值越大越亮。
要將圖片轉換為灰度圖只需要根據各像素的RGB值計算出對應的灰度值即可。那麼問題來了灰度值該怎麼計算呢?
方法有好幾種,有取直接取G的值的,也有取RGB平均值的,更為常用的是加權平均法,也就是R、G、B的權重不一樣:
Gray = R*0.3 + G*0.59 + B*0.11
測試一下:
1.準備一種圖片:
2. 測試代碼:
代碼很容易理解,循環獲取圖片的每一個像素的顏色值,再根據公式計算出灰度值,然後將灰色設置到對應的圖片對象的相同位置上,最後保存圖片即可。
QImage::pixelColor用於獲取像素顏色,返回值是QColor對象。 QImage::setPixelColor用於設置像素顏色,參數是位置(x,y)和QColor對象。
3. 轉換後的圖像
其實還有一種更簡單的方法,就是將圖片的格式轉換為 QImage::Format_Grayscale8
轉換後的效果:
特別說明:
若後續發現文章中的錯誤或者對文章內容補充將只在我的個人博客中進行更新。我的博客主要記錄編程中學到的知識、踩過的坑以及一些莫名其妙的想法。
歡迎來踩我的個人博客: fearlazy。