操作匯總:Python+OpenCV的基礎(chǔ)圖像處理
本文我們將討論使用Python中的OpenCV庫(kù)進(jìn)行圖像處理的一些基本操作。
圖像處理是對(duì)圖像進(jìn)行的技術(shù)操作與分析,比如為了得到增強(qiáng)的圖像或提取一些有用的信息而進(jìn)行的一系列操作。隨著我們的發(fā)展,許多應(yīng)用程序使用圖像/幀/視頻作為輸入,對(duì)它們進(jìn)行預(yù)處理,并將其輸入到設(shè)備或軟件或腳本中。
應(yīng)用
圖像處理也可以是娛樂(lè)性的,可以用于許多應(yīng)用。它可以用來(lái)調(diào)整圖像的大小,以適應(yīng)我們的網(wǎng)頁(yè)所需大小,并可以使他們銳化它可以將黑白圖像轉(zhuǎn)換成彩色照片,或者可以使用著色技術(shù)使彩色照片看起來(lái)像舊的黑白照片一樣它可以用來(lái)增強(qiáng)醫(yī)學(xué)影像來(lái)檢查病人的癌癥或其他疾病;緢D像處理技術(shù)在本文中,我們將看到從目錄中讀取圖像、修改圖像并將其存儲(chǔ)在另一個(gè)目錄中的函數(shù)實(shí)現(xiàn)。下面是我們要討論的主要內(nèi)容。
使用Python和OpenCV讀取圖像使用OpenCV調(diào)整圖像大小模糊/平滑圖像銳化圖像邊緣檢測(cè)算法(Canny)基本要求和安裝:裝有Windows的電腦/個(gè)人電腦/筆記本電腦Python軟件:可以按照這里相關(guān)包進(jìn)行下載和安裝。
下載并安裝VS Code。從Visual Studio Marketplace安裝Python擴(kuò)展包。Python擴(kuò)展名為Python,由Microsoft發(fā)布。通過(guò)在CMD(命令提示符)中發(fā)出以下命令來(lái)安裝opencv python(這是一個(gè)用于python的非正式預(yù)構(gòu)建opencv包):pip install PACKAGE_NAME
PACKAGE_NAME可以是opencv-python(只包含主模塊)opencv-contrib-python(包含main和contrib模塊)opencv-python-headless(與opencv-python相同,但沒(méi)有GUI功能)opencv-contrib-python-headless(與opencv-contrib-python相同,但沒(méi)有GUI功能)設(shè)置完成之后,打開(kāi)一個(gè)目錄,創(chuàng)建一個(gè)“Image_Processing”文件夾。下載少量圖像(3-4個(gè)圖像)并保存在該文件夾中。創(chuàng)建一個(gè)Python腳本文件“Test_img_processing.py“(.py是python腳本的擴(kuò)展)
實(shí)現(xiàn)與執(zhí)行:現(xiàn)在我們可以使用python腳本了,需要在導(dǎo)入所需庫(kù)的情況下啟動(dòng)腳本。
下面是進(jìn)行基本圖像處理的函數(shù)。
1.我們使用函數(shù)“imread()”來(lái)讀取圖像,它將圖像文件名作為字符串和標(biāo)志imread(/complete/path/to/image,flag)第一個(gè)參數(shù)是指向圖像的完整路徑以及擴(kuò)展名。第二個(gè)參數(shù)是可選標(biāo)志,可以是以下任意一個(gè):cv2.IMREAD_COLOR:加載彩色圖像。圖像的任何透明度都將被忽略,它是默認(rèn)標(biāo)志。cv2.IMREAD_GRAYSCALE:以灰度模式加載圖像cv2.IMREAD_UNCHANGED:加載圖像,包括alpha通道返回numpy數(shù)組,包含像素值。對(duì)于彩色圖像,每個(gè)像素都表示為一個(gè)包含紅色、綠色和藍(lán)色通道的數(shù)組。注意,默認(rèn)標(biāo)志是cv2.IMREAD_COLOR,因此,即使讀取具有透明度的png圖像,透明通道也會(huì)被忽略。
2.使用“imshow()”來(lái)顯示讀取的圖像cv2.imshow(window_name, image)第一個(gè)參數(shù)是顯示圖像時(shí)顯示的窗口名稱。第二個(gè)參數(shù)是要在窗口中顯示的圖像。
3.為了將讀取的圖像保存到另一個(gè)目錄中,我們使用“imwrite()”函數(shù),目標(biāo)路徑和圖像文件作為參數(shù)。cv2.imwrite(‘/path/to/destination/image.png’,image)第一個(gè)參數(shù)是指向文件系統(tǒng)上的目標(biāo)路徑,在該位置上保存圖像。第二個(gè)參數(shù)是包含圖像的ndarray如果圖像成功寫(xiě)入文件系統(tǒng),則返回True,否則返回False。
4.為了得到圖像的尺寸,我們有一個(gè)稱為shape的屬性img = cv2.imread(‘/home/img/python.png’, cv2.IMREAD_UNCHANGED)
# 獲取圖像的尺寸
dimensions = img.shape
# 高度、寬度、通道
height = img.shape[0]
width = img.shape[1]
channels = img.shape[2]
img.shape返回(高度、寬度、通道數(shù))高度表示圖像中的像素行數(shù)或圖像數(shù)組的每列中的像素?cái)?shù)。寬度表示圖像中的像素列數(shù)或圖像數(shù)組中每行的像素?cái)?shù)。通道數(shù)表示用于表示每個(gè)像素的組件數(shù)。
5.為了模糊圖像,我們使用“cv2.Blur()”,輸入?yún)?shù)為圖像和濾波器。這里使用平均濾波器,當(dāng)然也還有其他選擇:高斯模糊中值模糊雙邊濾波示例腳本:# 導(dǎo)入opencv CV2模塊
import cv2
# bat.jpg 是蝙蝠俠的圖片.
img = cv2.imread(‘bat.jpg’)
# 確保已將其保存在同一文件夾中
# 平均
# 你可以隨意改變核大小
Averaging_blur= cv2.blur(img,(10,10))
cv2.imshow(‘Averaging’,Averaging_blur)
cv2.waitKey(0)# 等待窗口關(guān)閉
# 高斯模糊
# 你可以隨意改變核大小
Gaussian_Blur= cv2.GaussianBlur(img, (5,5),0)
cv2.imshow(‘Gaussian Blurring’, Gaussian_Blur)
cv2.waitKey(0)#waits for the window to close
# 中值模糊
Median_Blur= cv2.medianBlur(img,5)
cv2.imshow(‘Median Blurring’, Median_Blur)
cv2.waitKey(0)# 等待窗口關(guān)閉
# 雙邊濾波
Bilateral_Filter= cv2.bilateralFilter(img,9,75,75)
cv2.imshow(‘Bilateral Filtering’, Bilateral_Filter)
cv2.waitKey(0) # 等待窗口關(guān)閉
cv2.destroyAllWindows()# 關(guān)閉此會(huì)話中所有打開(kāi)的窗口
6.為了檢測(cè)圖像的邊緣,我們使用了流行的canny邊緣檢測(cè)算法。OpenCV有一個(gè)內(nèi)置函數(shù)cv2.Canny(),它將輸入圖像作為第一個(gè)參數(shù),其光圈大小(最小值和最大值)作為最后兩個(gè)參數(shù)。edges = cv2.Canny(frame,100,200)
# 在框架中顯示邊
cv2.imshow('Edges',edges)
使用opencv和python有更多的操作和開(kāi)源算法來(lái)執(zhí)行圖像的特定功能,這些操作和算法可以非常容易和靈活地在實(shí)時(shí)視頻/幀中實(shí)現(xiàn)。

發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
圖片新聞
-
機(jī)器人奧運(yùn)會(huì)戰(zhàn)報(bào):宇樹(shù)機(jī)器人摘下首金,天工Ultra搶走首位“百米飛人”
-
存儲(chǔ)圈掐架!江波龍起訴佰維,索賠121萬(wàn)
-
長(zhǎng)安汽車(chē)母公司突然更名:從“中國(guó)長(zhǎng)安”到“辰致科技”
-
豆包前負(fù)責(zé)人喬木出軌BP后續(xù):均被辭退
-
字節(jié)AI Lab負(fù)責(zé)人李航卸任后返聘,Seed進(jìn)入調(diào)整期
-
員工持股爆雷?廣汽埃安緊急回應(yīng)
-
中國(guó)“智造”背后的「關(guān)鍵力量」
-
小米汽車(chē)研發(fā)中心重磅落地,寶馬家門(mén)口“搶人”
最新活動(dòng)更多
-
即日-9.1立即下載>> 【限時(shí)下載】ADI中國(guó)三十周年感恩回饋助力企業(yè)升級(jí)!
-
即日-9.16點(diǎn)擊進(jìn)入 >> 【限時(shí)福利】TE 2025國(guó)際物聯(lián)網(wǎng)展·深圳站
-
10月23日立即報(bào)名>> Works With 開(kāi)發(fā)者大會(huì)深圳站
-
10月24日立即參評(píng)>> 【評(píng)選】維科杯·OFweek 2025(第十屆)物聯(lián)網(wǎng)行業(yè)年度評(píng)選
-
11月27日立即報(bào)名>> 【工程師系列】汽車(chē)電子技術(shù)在線大會(huì)
-
12月18日立即報(bào)名>> 【線下會(huì)議】OFweek 2025(第十屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會(huì)
推薦專題
- 1 阿里首位程序員,“掃地僧”多隆已離職
- 2 先進(jìn)算力新選擇 | 2025華為算力場(chǎng)景發(fā)布會(huì)暨北京xPN伙伴大會(huì)成功舉辦
- 3 宇樹(shù)機(jī)器人撞人事件的深度剖析:六維力傳感器如何成為人機(jī)安全的關(guān)鍵屏障
- 4 清華跑出具身智能獨(dú)角獸:給機(jī)器人安上眼睛和大腦,融資近20億
- 5 特朗普要求英特爾首位華人 CEO 辭職
- 6 踢館大廠和微軟,剖析WPS靈犀的AI實(shí)用主義
- 7 騰訊 Q2 財(cái)報(bào)亮眼:AI 已成第二增長(zhǎng)曲線
- 8 谷歌吹響AI沖鋒號(hào),AI還有哪些機(jī)會(huì)
- 9 蘋(píng)果把身家押在Siri上:一場(chǎng)輸不起的自我革命
- 10 騰訊米哈游押寶的中國(guó)AI應(yīng)用,正在海外悶聲發(fā)財(cái)