日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Python OpenCV 实现图像滤波

發布時間:2024/9/19 综合教程 31 生活家
生活随笔 收集整理的這篇文章主要介紹了 Python OpenCV 实现图像滤波 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、實驗過程

我使用的是python語言+openCV來實現圖像濾波。

使用imread()函數讀取圖片,使用imshow()函數顯示圖片,waitKey()函數含義為按下任意鍵繼續;

代碼示例:

img = cv2.imread("photo1.bmp")

cv2.imshow("img",img)

cv2.waitKey(0)

結果:

我們可以用pil來實現在圖片上顯示文字,首先先安裝pillow

實例代碼:

#cv2和PIL中顏色的hex碼的儲存順序不同,需轉RGB模式

pil_img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)

#Image.fromarray()將數組類型轉成圖片格式,與np.array()相反

pilimg = Image.fromarray(pil_img)

draw = ImageDraw.Draw(pilimg)#PIL圖片上打印漢字

font = ImageFont.truetype("simhei.ttf",50,encoding="utf-8")

draw.text((0,0),"原圖像",(255,0,0),font=font)

img1 = cv2.cvtColor(np.array(pilimg),cv2.COLOR_RGB2BGR)#將圖片轉成cv2.imshow()可以顯示的數組格式

cv2.imshow("img1",img1)

cv2.waitKey()

結果:

均值濾波的實例代碼:

img2 = cv2.blur(img,(5,5))

pil_img1 = cv2.cvtColor(img2,cv2.COLOR_BGR2RGB)

pilimg1 = Image.fromarray(pil_img1)

draw = ImageDraw.Draw(pilimg1)#PIL圖片上打印漢字

font = ImageFont.truetype("simhei.ttf",20,encoding="utf-8")

draw.text((0,0),"均值濾波",(255,0,0),font=font)

img3 = cv2.cvtColor(np.array(pilimg1),cv2.COLOR_RGB2BGR)

cv2.imshow("img3",img3)

cv2.waitKey()

結果:

中值濾波的實例代碼:

img_median = cv2.medianBlur(img, 5)

pil_img2 = cv2.cvtColor(img_median,cv2.COLOR_BGR2RGB)

pilimg2 = Image.fromarray(pil_img2)

draw = ImageDraw.Draw(pilimg2)#PIL圖片上打印漢字

font = ImageFont.truetype("simhei.ttf",20,encoding="utf-8")

draw.text((0,0),"中值濾波",(255,0,0),font=font)

img4 = cv2.cvtColor(np.array(pilimg2),cv2.COLOR_RGB2BGR)#將圖片轉成cv2.imshow()可以顯示的數組格式

cv2.imshow("img4",img4)

cv2.waitKey(0)

結果:

高斯濾波的實例代碼:

# 高斯濾波

img_Guassian = cv2.GaussianBlur(img,(5,5),0)

pil_img3 = cv2.cvtColor(img_Guassian,cv2.COLOR_BGR2RGB)

pilimg3 = Image.fromarray(pil_img3)

draw = ImageDraw.Draw(pilimg3)#PIL圖片上打印漢字

font = ImageFont.truetype("simhei.ttf",20,encoding="utf-8")

draw.text((0,0),"高斯濾波",(255,0,0),font=font)

img5 = cv2.cvtColor(np.array(pilimg3),cv2.COLOR_RGB2BGR)#將圖片轉成cv2.imshow()可以顯示的數組格式

cv2.imshow("img5",img5)

cv2.waitKey(0)

結果:

邊緣檢測的實例代碼:

img6 = cv2.Canny(pil_img3,30,150)

img_Guassian = cv2.GaussianBlur(img6,(5,5),0)

pil_img4 = cv2.cvtColor(img6,cv2.COLOR_BGR2RGB)

pilimg4 = Image.fromarray(pil_img4)

draw = ImageDraw.Draw(pilimg4)#PIL圖片上打印漢字

font = ImageFont.truetype("simhei.ttf",20,encoding="utf-8")

draw.text((0,0),"高斯濾波邊緣檢測",(0,255,0),font=font)

img7 = cv2.cvtColor(np.array(pilimg4),cv2.COLOR_RGB2BGR)

cv2.imshow("img7",img7)

cv2.waitKey(0)

結果:

二、實驗中的錯誤

輸入from PIL import Image,ImageDraw,ImageFont報錯,然后發現自己沒有安裝pillow,則我們輸入pip install pillow,在輸入就成功了。

三、實驗總結

學習了OpenCV的圖像濾波,途中遇到了問題也較快解決,鍛煉了自己的能力。

總結

以上是生活随笔為你收集整理的Python OpenCV 实现图像滤波的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。