翻譯|使用教程|編輯:黃竹雯|2019-06-19 10:34:30.250|閱讀 838 次
概述:在上一篇文章中,我們討論了一些常見的顏色模型,特別是RGB,HSV和YUV。而在本文中,我們將看看如何將它們轉換為灰度。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
在上一篇文章中,我們討論了一些常見的顏色模型,特別是RGB,HSV和YUV。顏色模型是一種抽象的數學模型,描述了顏色如何表示為一組數字。在這篇文章中,我們將看看如何將它們轉換為灰度?;叶仁菑陌咨胶谏囊幌盗谢疑幱埃糜趩紊@示或打印輸出?;叶葓D像最常用于圖像處理,因為較小的數據使開發人員能夠在更短的時間內完成更復雜的操作。
有許多常用的方法可以將RGB圖像轉換為灰度圖像,例如平均法和加權法。
平均法
平均法將R,G和B的平均值作為灰度值。
灰度=(R + G + B)/ 3
從理論上講,公式是100%正確的。但是在編寫代碼時,您可能會遇到uint8溢出錯誤 - R,G和B的總和大于255.為避免異常,應分別計算R,G和B。
灰度= R / 3 + G / 3 + B / 3
平均法很簡單,但效果不如預期。原因是人眼對RGB的反應不同。眼睛對綠光最敏感,對紅光不敏感,對藍光最不敏感。因此,三種顏色在分布上應具有不同的權重。這使我們得到加權方法。
加權法
加權法,也稱為光度法,根據其波長稱重紅色,綠色和藍色。改進后的公式如下:
灰度 = 0.299R + 0.587G + 0.114B
YUV是一種用于模擬電視的彩色編碼系統。YUV顏色模型比計算機圖形硬件中使用的標準RGB模型更接近地表示人類對顏色的感知,并且尺寸效率更高。
RGB到YUV轉換
Y = 0.299R + 0.587G + 0.114B
U'=(BY)* 0.565
V'=(RY)* 0.713
灰度值
將RGB轉換為Y的公式與將RGB轉換為灰度的公式相同。因此:
灰度 = Y
HSV(色調,飽和度,值)和HSL(色調,飽和度,亮度或光亮度)是笛卡爾RGB色彩空間的變換。
要將HSV轉換為灰度,我們首先需要將HSV轉換為RGB,然后將RGB三元組轉換為灰度值。
HSV到RGB轉換
當 0 ≤ H < 360, 0 ≤ S ≤ 1 和 0 ≤ V ≤ 1:
C = V × S
X = C ×(1 - |(H / 60°)mod 2 - 1 |)
m = V - C
(R,G,B)=((R '+ m)×255,(G '+ m)×255,(B '+ m)×255)
灰度值
灰度 = 0.299R + 0.587G + 0.114B
二值化將灰度圖像轉換為黑/白圖像。該轉換在檢測斑點方面很有用,并進一步降低了計算復雜度。關鍵任務是找到合適的閾值。主要有兩種方法:
下圖顯示了二值化之前和之后的示例。
利用局部閾值方法,在每個像素處計算閾值,其取決于一些局部統計,例如平均值,范圍和像素鄰域的方差。將圖像分成幾個子塊,并分析每個塊中灰度值的分布。
全局閾值處理方法利用圖像直方圖。圖像直方圖是一種統計圖,在x軸上具有灰度值,在y軸上具有每個灰度的像素數。
圖像直方圖可用于自動確定用于將灰度圖像轉換為二值圖像的閾值?;舅枷胧窃谇熬跋袼刂档姆逯岛捅尘跋袼刂档姆逯抵g找到一個點。如果像素的強度等級小于閾值,則將像素設置為黑色(灰度= 0),否則將其設置為白色(灰度= 255)。閾值用作分界線。
要了解有關成像基礎知識的更多信息,請閱讀圖像處理101教程系列中的第一篇:
和第二篇文章:
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn