Python中的圖像處理之Python圖像平滑操作
前言
隨著人工智能研究的不斷興起,Python的應(yīng)用也在不斷上升,由于Python語言的簡潔性、易讀性以及可擴(kuò)展性,特別是在開源工具和深度學(xué)習(xí)方向中各種神經(jīng)網(wǎng)絡(luò)的應(yīng)用,使得Python已經(jīng)成為最受歡迎的程序設(shè)計(jì)語言之一。由于完全開源,加上簡單易學(xué)、易讀、易維護(hù)、以及其可移植性、解釋性、可擴(kuò)展性、可擴(kuò)充性、可嵌入性:豐富的庫等等,自己在學(xué)習(xí)與工作中也時(shí)常接觸到Python,這個(gè)系列文章的話主要就是介紹一些在Python中常用一些例程進(jìn)行仿真演示!
本系列文章主要參考楊秀章老師分享的代碼資源,楊老師博客主頁是Eastmount,楊老師興趣廣泛,不愧是令人膜拜的大佬,他過成了我理想中的樣子,希望以后有機(jī)會(huì)可以向他請教學(xué)習(xí)交流。
因?yàn)樽约菏亲鰣D像語音出身的,所以結(jié)合《Python中的圖像處理》,學(xué)習(xí)一下Python,OpenCV已經(jīng)在Python上進(jìn)行了多個(gè)版本的維護(hù),所以相比VS,Python的環(huán)境配置相對簡單,缺什么庫直接安裝即可。本系列文章例程都是基于Python3.8的環(huán)境下進(jìn)行,所以大家在進(jìn)行借鑒的時(shí)候建議最好在3.8.0版本以上進(jìn)行仿真。本文繼續(xù)來對本書第十章的后4個(gè)例程進(jìn)行介紹。
一. Python準(zhǔn)備
如何確定自己安裝好了python
win+R輸入cmd進(jìn)入命令行程序
點(diǎn)擊“確定”
輸入:python,回車
看到Python相關(guān)的版本信息,說明Python安裝成功。
二. Python仿真
(1)新建一個(gè)chapter10_06.py文件,輸入以下代碼,圖片也放在與.py文件同級文件夾下
# -*- coding: utf-8 -*- # By:Eastmount CSDN 2021-06-07 import cv2 import numpy as np import matplotlib.pyplot as plt #讀取圖片 img = cv2.imread('te.png') source = cv2.cvtColor(img,cv2.COLOR_BGR2RGB) #雙邊濾波 result = cv2.bilateralFilter(source, 15, 150, 150) #用來正常顯示中文標(biāo)簽 plt.rcParams['font.sans-serif']=['SimHei'] #顯示圖形 titles = ['原始圖像', '雙邊濾波'] images = [source, result] for i in range(2): plt.subplot(1,2,i+1), plt.imshow(images[i], 'gray') plt.title(titles[i]) plt.xticks([]),plt.yticks([]) plt.show()
保存.py文件
輸入eixt()退出python,輸入命令行進(jìn)入工程文件目錄
輸入以下命令,跑起工程
python chapter10_06.py
沒有報(bào)錯(cuò),直接彈出圖片,運(yùn)行成功!
(2)新建一個(gè)chapter10_07.py文件,輸入以下代碼,圖片也放在與.py文件同級文件夾下
# -*- coding: utf-8 -*- # By:Eastmount CSDN 2021-06-07 import cv2 import numpy as np import matplotlib.pyplot as plt #讀取圖片 img = cv2.imread('te.png') source = cv2.cvtColor(img,cv2.COLOR_BGR2RGB) #均值濾波 result1 = cv2.blur(source, (5,5)) result2 = cv2.blur(source, (10,10)) #方框?yàn)V波 result3 = cv2.boxFilter(source, -1, (5,5), normalize=1) result4 = cv2.boxFilter(source, -1, (2,2), normalize=0) #高斯濾波 result5 = cv2.GaussianBlur(source, (3,3), 0) result6 = cv2.GaussianBlur(source, (15,15), 0) #中值濾波 result7 = cv2.medianBlur(source, 3) #高斯雙邊濾波 result8 =cv2.bilateralFilter(source, 15, 150, 150) #顯示圖形 titles = ['Source', 'Blur 5*5', 'Blur 10*10', 'BoxFilter 5*5', 'BoxFilter 2*2', 'GaussianBlur 3*3', 'GaussianBlur 15*15', 'medianBlur', 'bilateralFilter'] images = [source, result1, result2, result3, result4, result5, result6, result7, result8] for i in range(9): plt.subplot(3,3,i+1), plt.imshow(images[i], 'gray') plt.title(titles[i]) plt.xticks([]),plt.yticks([]) plt.show()
保存.py文件輸入以下命令,跑起工程
python chapter10_07.py
沒有報(bào)錯(cuò),直接彈出圖片,運(yùn)行成功!
(3)新建一個(gè)chapter10_08.py文件,輸入以下代碼,圖片也放在與.py文件同級文件夾下
# -*- coding: utf-8 -*- # By:Eastmount CSDN 2021-06-07 import cv2 import numpy as np import matplotlib.pyplot as plt #讀取圖片 img = cv2.imread('test01_yn.png') source = cv2.cvtColor(img,cv2.COLOR_BGR2RGB) #中值濾波 result1 = cv2.medianBlur(source, 3) #高斯雙邊濾波 result2 =cv2.bilateralFilter(source, 15, 150, 150) #均值遷移 result3 = cv2.pyrMeanShiftFiltering(source, 20, 50) #用來正常顯示中文標(biāo)簽 plt.rcParams['font.sans-serif']=['SimHei'] #顯示圖形 titles = ['原始圖像', '中值濾波', '雙邊濾波', '均值遷移'] images = [source, result1, result2, result3] for i in range(4): plt.subplot(2,2,i+1), plt.imshow(images[i], 'gray') plt.title(titles[i]) plt.xticks([]),plt.yticks([]) plt.show()
保存.py文件輸入以下命令,跑起工程
python chapter10_08.py
沒有報(bào)錯(cuò),直接彈出圖片,運(yùn)行成功!
(4)新建一個(gè)chapter10_09.py文件,輸入以下代碼,圖片也放在與.py文件同級文件夾下
# -*- coding:utf-8 -*- import cv2 import numpy as np #讀取圖片 img = cv2.imread("te.png", cv2.IMREAD_UNCHANGED) rows, cols, chn = img.shape #加噪聲 for i in range(5000): x = np.random.randint(0, rows) y = np.random.randint(0, cols) img[x,y,:] = 255 cv2.imshow("noise", img) #等待顯示 cv2.waitKey(0) cv2.destroyAllWindows()
保存.py文件輸入以下命令,跑起工程
python chapter10_09.py
沒有報(bào)錯(cuò),直接彈出圖片,運(yùn)行成功!
三. 小結(jié)
本文主要介紹在Python中調(diào)用OpenCV庫對圖像進(jìn)行圖像平滑濾波處理與圖像加噪處理,如雙邊濾波,高斯雙邊濾波,圖像加隨機(jī)噪聲等操作。由于本書的介紹比較系統(tǒng)全面,所以會(huì)出一個(gè)系列文章進(jìn)行全系列仿真實(shí)現(xiàn),感興趣的還是建議去原書第十章深入學(xué)習(xí)理解,下一篇文章將繼續(xù)介紹第十一章節(jié)的5例仿真實(shí)例。每天學(xué)一個(gè)Python小知識,大家一起來學(xué)習(xí)進(jìn)步阿!
到此這篇關(guān)于Python中的圖像處理之Python圖像平滑處理操作的文章就介紹到這了,更多相關(guān)Python圖像平滑內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python模塊詳解之pywin32使用文檔(python操作windowsAPI)
pywin32是一個(gè)第三方模塊庫,主要的作用是方便python開發(fā)者快速調(diào)用windows API的一個(gè)模塊庫,這篇文章主要給大家介紹了關(guān)于python模塊詳解之pywin32使用文檔的相關(guān)資料,文中將python操作windowsAPI介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01TensorFlow實(shí)現(xiàn)簡單的CNN的方法
這篇文章主要介紹了TensorFlow實(shí)現(xiàn)簡單的CNN的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07Python通過select實(shí)現(xiàn)異步IO的方法
這篇文章主要介紹了Python通過select實(shí)現(xiàn)異步IO的方法,實(shí)例分析了Python中select模塊的使用技巧,需要的朋友可以參考下2015-06-06Pycharm配置遠(yuǎn)程調(diào)試的方法步驟
這篇文章主要介紹了Pycharm配置遠(yuǎn)程調(diào)試的方法步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-12-12