国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

VB圖像處理,(四)幾個常用濾鏡的實現2

2024-07-21 02:20:57
字體:
來源:轉載
供稿:網友
上一次,我們講了銳化、柔化、擴散、雕刻這幾個濾鏡的算法和實現
請參考《vb圖像處理,(三)幾個常用濾鏡的實現1 》


在這一篇中我將和大家講述鉛筆畫算法和木雕算法和它們的實現。
為什么我要把這兩個算法放在一起說呢,因為這兩個算法是非常相似的。
首先要說一下人的眼睛對于圖像的觀察,人的眼睛對于灰度(亮度)的敏感
要遠遠大于對色彩的敏感,而人的眼睛對于暖色調和冷色調的敏感有要遠大于
對一般色彩的敏感度。
經過大量的測試,人們得到了一個經驗公式,來說明人的眼睛是如何識別亮度的:
gray = red * 0.3 + green * 0.6 + blue * 0.1
而右因為人的眼睛對于綠色的敏感度最大,就有了一個更加近似的公式:
gray = green
請大家再回想一下以前在用鉛筆畫眼睛看到的景色的時候,是如何做的呢?
輪廓,對了,輪廓是什么呢?其實說白了就是灰度的一個跳變。
因此我們只要設定一個閥值,把電腦上的圖片中的像素的色彩轉化為灰度,再把
相鄰的兩個像素的灰度去比較,當灰度變化超過一定的量的時候,我們就判斷它是輪廓。
用鉛筆把它描繪出來。
有了這個思路,我們就很容易把這個算法寫出來了。
public sub pencil(optional byval sensitivity as long = 25)
dim i as long
dim l as long
dim m as long
dim n as long
dim col as long
dim colnext as long
'on error goto errline
if not canput then exit sub
done = false
timefilter = timegettime
for i = 0 to outputwid - 1
m = i + 1
for l = 0 to outputhei - 1
n = l + 1
col = colout(0, i, l) * 3 + colout(1, i, l) * 6 + colout(2, i, l)
col = col / 10 '當前點的灰度哦。
colnext = colout(0, m, n) * 3 + colout(1, m, n) * 6 + colout(2, m, n)
colnext = -colnext / 10 '下一點的灰度哦。
if col + colnext > sensitivity then '判斷灰度變化是否超過設定的閥值
colout(0, i, l) = 0 'rgb(0,0,0)表示黑色
colout(1, i, l) = 0
colout(2, i, l) = 0
else
colout(0, i, l) = 255 'rgb(255,255,255)表示白色
colout(1, i, l) = 255
colout(2, i, l) = 255
end if
next
next
done = true
timefilter = timegettime - timefilter
exit sub
errline:
msgbox err.description
end sub
這里用到的所有全局變量都已經在前幾章中用到,就不再重復說明了。

說到這里,那么木雕的原理就更簡單啦,無非就是判斷該點像素的灰度,如果灰度大于給定的閥值,
就設它為白色,如果該點像素的灰度小于給定的閥值,就設定它為黑色。
那么,這個算法,我就不寫出來了,讓給電腦前的讀者,自己寫一個試試看吧,不會難道你的。
這兩篇講的都是一些很簡單的圖像處理,下一篇講給大家講“灰度直方圖”的概念,大家或許用過
photoshop中的autolevel的功能吧,它可以把一張色彩很“別扭”的圖像轉換為很“舒服”的效果,
那么就需要用到“灰度直方圖”這個工具了,希望大家不要錯過。


對了,前幾章的內容請點一下鏈接:
《vb圖像處理,(一)像素的獲取和輸出 》
《vb圖像處理,(二)二次線性插值的應用》
《vb圖像處理,(三)幾個常用濾鏡的實現1 》


(這里只是說了我自己在寫程序的時候用到的方法,存在很多的不足。并且因為在貼上來的時候作了部分修改,可能會存在部分錯誤,請各位高手不吝賜教,將您用到的更好的方法提供一下,我將不勝感激。)


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 郓城县| 大冶市| 巴楚县| 天柱县| 嘉荫县| 新野县| 庆云县| 博客| 南部县| 宿松县| 自治县| 马鞍山市| 枣强县| 平定县| 淳安县| 绥棱县| 监利县| 南昌市| 东港市| 汾西县| 疏附县| 衡山县| 墨竹工卡县| 神农架林区| 固原市| 略阳县| 北碚区| 抚顺县| 文安县| 瓮安县| 兰西县| 横峰县| 合水县| 亳州市| 商洛市| 理塘县| 海口市| 馆陶县| 馆陶县| 贵港市| 东山县|