提高計算機視覺任務(wù)的圖像質(zhì)量
點擊下方“AI算法與圖像處理”,一起進步!
重磅干貨,第一時間送達
二值化/閾值化 降噪 糾偏 重新縮放 形態(tài)學(xué)操作 為了嘗試這些操作,我們將使用Python3語言及其兩個庫, Pillow 和OpenCV。
二值化
##?import?dependencies
import?cv2
from?PIL?import?Image
import?matplotlib.pyplot?as?plt
##?reading?image
img?=?cv2.imread('text_document.jpg',0)
##?apply?binary?thresholding
ret,thresh1?=?cv2.threshold(img,170,255,cv2.THRESH_BINARY)
##?plot?original?and?binarised?image?
titles?=?['Original?Image',?'Binary?Thresholding']
images?=?[img,?thresh1]
for?i?in?range(2):
????plt.figure(figsize=(20,20))
????plt.subplot(2,3,i+1),plt.imshow(images[i],'gray',vmin=0,vmax=255)
????plt.title(titles[i])
????plt.xticks([]),plt.yticks([])

自適應(yīng)閾值均值:閾值是平均值附近區(qū)域減去固定的?。 自適應(yīng)高斯閾值:閾值是鄰域值減去常數(shù)C的高斯加權(quán)總和。
##?import?dependencies
import?cv2
from?PIL?import?Image
import?matplotlib.pyplot?as?plt
##?reading?image
img?=?cv2.imread('lighting_conditions.jpg',?0)
##?apply?adaptive?thresholding?
##?adaptive?mean?thresholding?
th1?=?cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_MEAN_C,
????????????cv2.THRESH_BINARY,11,2)
##?adaptive?gaussian?thresholding
th2?=?cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,
????????????cv2.THRESH_BINARY,11,2)
##?plot?original?and?binarised?image?
titles?=?['Original?Image',?'Adaptive?Mean?Thresholding',?'Adaptive?Gaussian?Thresholding']
images?=?[img,?th1,?th2]
plt.figure(figsize=(20,20))
for?i?in?range(3):
????plt.subplot(2,3,i+1),plt.imshow(images[i],'gray',vmin=0,vmax=255)
????plt.title(titles[i])
????plt.xticks([]),plt.yticks([])

##?import?dependencies
import?cv2
from?PIL?import?Image
import?matplotlib.pyplot?as?plt
##?reading?image
img?=?cv2.imread('lighting_conditions.jpg',?0)
##?apply?Otru's?thresholding
ret3,th1?=?cv2.threshold(img,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
##?plot?original?and?binarised?image?
titles?=?["Original?Image",?"Binary?Otsu's?Thresholding"]
images?=?[img,?th1]
plt.figure(figsize=(20,20))
for?i?in?range(2):
????plt.subplot(2,3,i+1),plt.imshow(images[i],'gray',vmin=0,vmax=255)
????plt.title(titles[i])
????plt.xticks([]),plt.yticks([])

降噪
##?import?dependencies
import?cv2
from?PIL?import?Image
import?matplotlib.pyplot?as?plt
##?reading?image
img?=?cv2.imread('noisy_image.jpg')
##?apply?image?denoising
dst?=?cv2.fastNlMeansDenoisingColored(img,None,10,10,7,21)
##?plot?original?and?denoised?image?
titles?=?["Original?Image",?"Denoised?Image"]
images?=?[img,?dst]
plt.figure(figsize=(20,20))
for?i?in?range(2):
????plt.subplot(2,3,i+1),plt.imshow(images[i],'gray',vmin=0,vmax=255)
????plt.title(titles[i])
????plt.xticks([]),plt.yticks([])

糾偏
重新縮放
##?import?dependencies
import?cv2
from?PIL?import?Image
import?numpy?as?np
import?matplotlib.pyplot?as?plt
##?reading?image
img?=?Image.open('noisy_image.jpg')
##?apply?image?rescaling?and?making?image?300x300?(downscaling)
dst?=?img.resize((50,50))
##?plot?original?and?downscaled?image
titles?=?["Original?Image",?"Rescaled?Image"]
images?=?[np.asarray(img),?np.asarray(dst)]
plt.figure(figsize=(20,20))
for?i?in?range(2):
????plt.subplot(2,3,i+1),plt.imshow(images[i],'gray',vmin=0,vmax=255)
????plt.title(titles[i])
????plt.xticks([]),plt.yticks([])

形態(tài)學(xué)操作
##?import?dependencies
import?cv2
from?PIL?import?Image
import?matplotlib.pyplot?as?plt
##?reading?image
img?=?cv2.imread('text_document.jpg',?0)
##?apply?erosion
kernel?=?np.ones((5,5),np.uint8)
erosion?=?cv2.erode(img,kernel,iterations?=?1)
##?plot?original?and?eroded?image
titles?=?["Original?Image",?"Eroded?Image"]
images?=?[img,?erosion]
plt.figure(figsize=(20,20))
for?i?in?range(2):
????plt.subplot(2,3,i+1),plt.imshow(images[i],'gray',vmin=0,vmax=255)
????plt.title(titles[i])
????plt.xticks([]),plt.yticks([])

##?import?dependencies
import?cv2
from?PIL?import?Image
import?matplotlib.pyplot?as?plt
##?reading?image
img?=?cv2.imread('text_document.jpg',?0)
##?apply?dilation
kernel?=?np.ones((5,5),np.uint8)
dilation?=?cv2.dilate(img,kernel,iterations?=?1)
##?plot?original?and?dilated?image
titles?=?["Original?Image",?"Dilated?Image"]
images?=?[img,?dilation]
plt.figure(figsize=(20,20))
for?i?in?range(2):
????plt.subplot(2,3,i+1),plt.imshow(images[i],'gray',vmin=0,vmax=255)
????plt.title(titles[i])
????plt.xticks([]),plt.yticks([])

結(jié)論
交流群
歡迎加入公眾號讀者群一起和同行交流,目前有美顏、三維視覺、計算攝影、檢測、分割、識別、醫(yī)學(xué)影像、GAN、算法競賽等微信群
個人微信(如果沒有備注不拉群!) 請注明:地區(qū)+學(xué)校/企業(yè)+研究方向+昵稱
下載1:何愷明頂會分享
在「AI算法與圖像處理」公眾號后臺回復(fù):何愷明,即可下載。總共有6份PDF,涉及 ResNet、Mask RCNN等經(jīng)典工作的總結(jié)分析
下載2:終身受益的編程指南:Google編程風(fēng)格指南
在「AI算法與圖像處理」公眾號后臺回復(fù):c++,即可下載。歷經(jīng)十年考驗,最權(quán)威的編程規(guī)范!
下載3 CVPR2021 在「AI算法與圖像處理」公眾號后臺回復(fù):CVPR,即可下載1467篇CVPR?2020論文 和 CVPR 2021 最新論文

評論
圖片
表情
