當(dāng)用均值濾波器降低圖像噪聲的時(shí)候,會(huì)帶來圖像模糊的副作用。我們當(dāng)然希望看到的是清晰圖像。那么,清晰圖像和模糊圖像之間的差別在哪里呢?從邏輯上考慮,圖像模糊是因?yàn)閳D像中物體的輪廓不明顯,輪廓邊緣灰度變化不強(qiáng)烈,層次感不強(qiáng)造成的,那么反過來考慮,輪廓邊緣灰度變化明顯些,層次感強(qiáng)些是不是圖像就更清晰些呢。
那么,這種灰度變化明顯不明顯怎樣去定義呢。我們學(xué)過微積分,知道微分就是求函數(shù)的變化率,即導(dǎo)數(shù)(梯度),那么對(duì)于圖像來說,可不可以用微分來表示圖像灰度的變化率呢,當(dāng)然是可以的,前面我們提到過,圖像就是函數(shù)嘛。
在微積分中,一維函數(shù)的一階微分的基本定義是這樣的:
而圖像是一個(gè)二維函數(shù)f(x,y),其微分當(dāng)然就是偏微分。因此有:
因?yàn)閳D像是一個(gè)離散的二維函數(shù),? 不能無限小,我們的圖像是按照像素來離散的,最小的?就是1像素。因此,上面的圖像微分又變成了如下的形式(?=1):
這分別是圖像在(x, y)點(diǎn)處x方向和y方向上的梯度,從上面的表達(dá)式可以看出來,圖像的梯度相當(dāng)于2個(gè)相鄰像素之間的差值。
那么,這個(gè)梯度(或者說灰度值的變化率)如何增強(qiáng)圖像的清晰度呢?
我們先考慮下x方向,選取某個(gè)像素,假設(shè)其像素值是100,沿x方向的相鄰像素分別是90,90,90,則根據(jù)上面的計(jì)算其x方向梯度分別是10,0,0。這里只取變化率的絕對(duì)值,表明變化的大小即可。
我們看到,100和90之間亮度相差10,并不是很明顯,與一大群90的連續(xù)灰度值在一起,輪廓必然是模糊的。我們注意到,如果相鄰像素灰度值有變化,那么梯度就有值,如果相鄰像素灰度值沒有變化,那么梯度就為0。如果我們把梯度值與對(duì)應(yīng)的像素相加,那么灰度值沒有變化的,像素值不變,而有梯度值的,灰度值變大了。
我們看到,相加后的新圖像,原圖像像素點(diǎn)100與90亮度只相差10,現(xiàn)在是110與90,亮度相差20了,對(duì)比度顯然增強(qiáng)了,尤其是圖像中物體的輪廓和邊緣,與背景大大加強(qiáng)了區(qū)別,這就是用梯度來增強(qiáng)圖像的原理。
上面只是說了x方向,y方向是一樣的。那么能否將x方向和y方向的梯度結(jié)合起來呢?當(dāng)然是可以的。x方向和y方向上的梯度可以用如下式子表示在一起:
這里又是平方,又是開方的,計(jì)算量比較大,于是一般用絕對(duì)值來近似平方和平方根的操作,來降低計(jì)算量:
我們來計(jì)算一下月球圖像的x方向和y方向結(jié)合的梯度圖像,以及最后的增強(qiáng)圖像。
import cv2 import numpy as np moon = cv2.imread(“moon.tif”, 0) row, column = moon.shape moon_f = np.copy(moon) moon_f = moon_f.astype(“float”) gradient = np.zeros((row, column)) for x in range(row - 1): for y in range(column - 1): gx = abs(moon_f[x + 1, y] - moon_f[x, y]) gy = abs(moon_f[x, y + 1] - moon_f[x, y]) gradient[x, y] = gx + gy sharp = moon_f + gradient sharp = np.where(sharp 《 0, 0, np.where(sharp 》 255, 255, sharp)) gradient = gradient.astype(“uint8”) sharp = sharp.astype(“uint8”) cv2.imshow(“moon”, moon) cv2.imshow(“gradient”, gradient) cv2.imshow(“sharp”, sharp) cv2.waitKey()
來源:CSDN,作者:saltriver。
原文鏈接:https://blog.csdn.net/saltriver/article/details/78987096
編輯:jq
-
濾波器
+關(guān)注
關(guān)注
162文章
8133瀏覽量
181973 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4379瀏覽量
64806
原文標(biāo)題:圖像梯度的基本原理
文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
STM32定時(shí)器基本原理及常見問題之培訓(xùn)資料
六天專修課程!電子電路基本原理66課
無刷電機(jī)電調(diào)的基本原理
AN-282: 采樣數(shù)據(jù)系統(tǒng)基本原理[中文版]
![AN-282: 采樣數(shù)據(jù)系統(tǒng)<b class='flag-5'>基本原理</b>[中文版]](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評(píng)論