直方圖的算法
看到論壇上有人認(rèn)為計(jì)算直方圖開銷最大的是標(biāo)準(zhǔn)偏差,還有人認(rèn)為有必要取消標(biāo)準(zhǔn)偏差的顯示項(xiàng)以提高速度。其實(shí)標(biāo)準(zhǔn)偏差的計(jì)算量并不大,就看你怎么去計(jì)算了。前面講過的一些算法的確會讓人誤以為計(jì)算這些數(shù)據(jù)時(shí)要對每個(gè)像素都進(jìn)行加減乘除乘方等運(yùn)算,所以我覺得有必要討論一下直方圖的具體計(jì)算過程。
要繪制直方圖,首先要建立一個(gè)儲存每種灰度數(shù)量的數(shù)據(jù)表(GrayTable),GrayTable是一個(gè)大小為256的數(shù)組。然后要對圖像的每一個(gè)像素進(jìn)行統(tǒng)計(jì),把每種灰度的像素?cái)?shù)量記錄到GrayTable中。這一步是必須的,不能偷工減料,這部分的計(jì)算量與像素的數(shù)量成正比,因此圖像越大,計(jì)算的速度就越慢。要想提高速度,唯一的方法就是使用緩存中的小圖進(jìn)行計(jì)算,但這樣會降低精確度,不過對于實(shí)時(shí)更新的動(dòng)態(tài)直方圖來說,這么做還是很有必要的。
數(shù)據(jù)表GrayTable準(zhǔn)備好了已后,平均值、中間值和標(biāo)準(zhǔn)偏差都可以利用GrayTable里的數(shù)據(jù)來計(jì)算,也就是說沒必要再對每個(gè)像素進(jìn)行計(jì)算了。無論圖像有多大,GrayTable里都只存放256個(gè)數(shù)字,所以計(jì)算起來相當(dāng)快。
舉例來說,例如GrayTable中存放了以下的數(shù)據(jù)。
平均值 = (0*3 + 1*2 + 2*1 + 3*5 + 0 + 255*1) / (3+2+1+5+0+1) = 274/12 = 22.8
看到了吧,用乘法就行了,灰度值×數(shù)量再相加。標(biāo)準(zhǔn)偏差也是用類似的方法計(jì)算。GrayTable的灰度值是從小到大排列的,所以計(jì)算中間值也很方便。
對于動(dòng)態(tài)直方圖來說,也可以利用GrayTable來優(yōu)化。有些時(shí)候,我們沒有必要重新統(tǒng)計(jì)整幅圖像的像素來更新直方圖,只要把先前直方圖的GrayTable里的數(shù)據(jù)調(diào)換一下位置就行了,這種方法僅限于單幅圖像單像素的處理(點(diǎn)運(yùn)算)。例如做反色運(yùn)算后,新的直方圖其實(shí)就是把原來的直方圖左右翻轉(zhuǎn)了一下。這樣無論圖像有多大,都可以做到精確的實(shí)時(shí)更新。
Photoshop圖像菜單的功能幾乎都可以使用這種優(yōu)化,但Photoshop目前還沒做到這一點(diǎn),估計(jì)是怕麻煩吧。一些高畫質(zhì)數(shù)碼照片處理軟件可以考慮把這個(gè)功能加進(jìn)去。
上文書轉(zhuǎn)載自:灰鹿色彩筆記 http://hi.baidu.com/graydeer 感謝灰鹿同志超一流的教學(xué)水準(zhǔn)! ----------------------------------------------------------------------------------------------- 下文書寥寥數(shù)字,卻更堪稱經(jīng)典。
“直方圖”里的色階為什么只有225級?而不是255
相關(guān)引用 http://bbs.blueidea.com/thread-2892954-1-1.html
關(guān)于直方圖的顯示225的錯(cuò)誤修改方法:
如果發(fā)現(xiàn)了有顯示錯(cuò)誤的現(xiàn)象,先關(guān)閉Photoshop,用記事本打開Photoshop安裝目錄下Required子目錄中的tw10428.dat文件。
在打開的tw10428.dat中查找"$$$/HistogramPalette/StatText/Cache=高速緩存級別:",其位于第7667行。將高速級別4個(gè)字刪除,只保留緩存2字。保存后退出。再啟動(dòng)Photoshop即可解決。刪除和保留的文字可自行決定,但必須至少刪除3個(gè)漢字才能解決問題!
注意: 修改tw10428.dat文件是Photoshop中文界面的字符文件,改動(dòng)不當(dāng)可能造成界面顯示錯(cuò)誤。如果刪除該文件或移動(dòng)出Required目錄,Photoshop將以英文界面啟動(dòng)。因此請做好備份,謹(jǐn)慎操作。如果錯(cuò)誤操作且無法挽回,必須重新安裝Photoshop。
經(jīng)典論壇交流: http://bbs.blueidea.com/thread-2892954-1-1.html
本文鏈接:http://www.95time.cn/design/doc/2008/6268.asp
出處:灰鹿的色彩筆記
責(zé)任編輯:moby
上一頁 什么是直方圖? [5] 下一頁
|