操作匯總:Python+OpenCV的基礎(chǔ)圖像處理
本文我們將討論使用Python中的OpenCV庫進(jìn)行圖像處理的一些基本操作。
圖像處理是對(duì)圖像進(jìn)行的技術(shù)操作與分析,比如為了得到增強(qiáng)的圖像或提取一些有用的信息而進(jìn)行的一系列操作。隨著我們的發(fā)展,許多應(yīng)用程序使用圖像/幀/視頻作為輸入,對(duì)它們進(jìn)行預(yù)處理,并將其輸入到設(shè)備或軟件或腳本中。
應(yīng)用
圖像處理也可以是娛樂性的,可以用于許多應(yīng)用。它可以用來調(diào)整圖像的大小,以適應(yīng)我們的網(wǎng)頁所需大小,并可以使他們銳化它可以將黑白圖像轉(zhuǎn)換成彩色照片,或者可以使用著色技術(shù)使彩色照片看起來像舊的黑白照片一樣它可以用來增強(qiáng)醫(yī)學(xué)影像來檢查病人的癌癥或其他疾病。基本圖像處理技術(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ā)布。通過在CMD(命令提示符)中發(fā)出以下命令來安裝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相同,但沒有GUI功能)opencv-contrib-python-headless(與opencv-contrib-python相同,但沒有GUI功能)設(shè)置完成之后,打開一個(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)入所需庫的情況下啟動(dòng)腳本。
下面是進(jìn)行基本圖像處理的函數(shù)。
1.我們使用函數(shù)“imread()”來讀取圖像,它將圖像文件名作為字符串和標(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()”來顯示讀取的圖像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如果圖像成功寫入文件系統(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ì)話中所有打開的窗口
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有更多的操作和開源算法來執(zhí)行圖像的特定功能,這些操作和算法可以非常容易和靈活地在實(shí)時(shí)視頻/幀中實(shí)現(xiàn)。

發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長度6~500個(gè)字
最新活動(dòng)更多
-
3月27日立即報(bào)名>> 【工程師系列】汽車電子技術(shù)在線大會(huì)
-
4月30日立即下載>> 【村田汽車】汽車E/E架構(gòu)革新中,新智能座艙挑戰(zhàn)的解決方案
-
5月15-17日立即預(yù)約>> 【線下巡回】2025年STM32峰會(huì)
-
即日-5.15立即報(bào)名>>> 【在線會(huì)議】安森美Hyperlux™ ID系列引領(lǐng)iToF技術(shù)革新
-
5月15日立即下載>> 【白皮書】精確和高效地表征3000V/20A功率器件應(yīng)用指南
-
5月16日立即參評(píng) >> 【評(píng)選啟動(dòng)】維科杯·OFweek 2025(第十屆)人工智能行業(yè)年度評(píng)選
推薦專題
- 1 UALink規(guī)范發(fā)布:挑戰(zhàn)英偉達(dá)AI統(tǒng)治的開始
- 2 北電數(shù)智主辦酒仙橋論壇,探索AI產(chǎn)業(yè)發(fā)展新路徑
- 3 降薪、加班、裁員三重暴擊,“AI四小龍”已折戟兩家
- 4 “AI寒武紀(jì)”爆發(fā)至今,五類新物種登上歷史舞臺(tái)
- 5 國產(chǎn)智駕迎戰(zhàn)特斯拉FSD,AI含量差幾何?
- 6 光計(jì)算迎來商業(yè)化突破,但落地仍需時(shí)間
- 7 東陽光:2024年扭虧、一季度凈利大增,液冷疊加具身智能打開成長空間
- 8 地平線自動(dòng)駕駛方案解讀
- 9 封殺AI“照騙”,“淘寶們”終于不忍了?
- 10 優(yōu)必選:營收大增主靠小件,虧損繼續(xù)又逢關(guān)稅,能否乘機(jī)器人東風(fēng)翻身?