今天小編來和大家分享一下Python在影像處理當中的具體應用,那既然是影像處理,那必然要提到opencv模組了,該模組支援與電腦視覺和機器學習相關的眾多演算法,而應用領域正在日益擴展,大致上有以下幾個領域。
- 物件辨識:透過視覺以及內部儲存來進行物件的判斷
- 影像分割
- 人臉辨識
- 汽車安全駕駛
- 人機互動
- 等等
當然這次小編並不打算將這麼高深的內容,今天就從最基本的opencv模組在圖像的基本操作上說起。
模組的安裝
模組的安裝我們透過都是透過pip指令來進行的。
pip install opencv-python pip install opencv-contrib-python
圖片的各種操作
學過線性代數的肯定懟矩陣並不感到陌生。影像本質上來說就是矩陣,灰階影像是一個普通的矩陣,而彩色影像就是一個多維矩陣,我們對於影像的操作可以自然地轉換成是對矩陣的操作。
讀取映像
首先我們先來讀取映像,呼叫的是cv2.imread()方法,它的語法格式如下:
cv2.imread(filename, flag=1)
其中的flag參數是用來設定讀取影像的格式,預設的是1,表示為依照RGB三通道的格式來進行讀取,如果設定成0,則表示以灰階圖單通道的方式來進行讀取,
import cv2 import numpy as np img=cv2.imread('1.jpg', 0)
展示圖像
在讀取圖片之後,我們希望能夠展示出來,這裡用到的函數方法是cv2.imshow(),它的語法格式如下所示
cv2.imshow(name, img)
其參數解釋分別如下:
- name: 表示的是展示視窗的名稱
- img: 圖片的矩陣形式
我們試著將上面讀取的圖片展示出來,程式碼如下
cv2.imshow("grey_img", img) ## 如果使用了cv2.imshow()函数,下面一定要跟着一个摧毁窗口的函数 cv2.destroyAllWindows()
當我們運行了上述的程式碼之後,可以發現在一瞬間當中圖片彈了出來,但是還沒等我們看清楚圖片的樣子之後就直接關掉了,原因在於cv2.imshow()函數方法並沒有延時的作用,我們加入一個延時的函數,程式碼如下
import cv2 import numpy as np img = cv2.imread('1.jpg') cv2.imshow("grey_img", img) cv2.waitKey(0) cv2.destroyAllWindows()
output
圖片儲存
最後我們將圖片儲存下來,這裡用到的函數是cv2.imwrite(),它的語法格式如下
cv2.imwrite(imgname, img)
其參數解釋分別如下:
- imgname: 要儲存的圖片的名字
- img: 圖片的矩陣形式
範例程式碼如下:
import cv2 import numpy as np img = cv2.imread('1.jpg') cv2.imshow("grey_img", img) cv2.waitKey(0) cv2.imwrite('1.png', img) cv2.destroyAllWindows()
圖片的各種屬性
有時候我們想要知道圖片的像素大小,而圖片的本質是矩陣,例如一張1024像素*960像素的圖片,就表示在矩陣當中的行數就是960行,列數是1024列,在opencv模組當中呼叫的shape()函數方法,程式碼如下:
import cv2 img = cv2.imread('1.jpg') print(img.shape[0]) # 行数 print(img.shape[1]) # 列数 print(img.shape[2]) # 通道数
output
308 340 3
可以看到該圖片的像素是340*380 ,通道數是3,而針對灰階影像而言,我們來看一下圖片的屬性,程式碼如下:
img = cv2.imread('1_grey.png', 0) print(img.shape)
output
(308, 340)
可以看到對於灰階影像而言,我們就沒有看到通道數,只有行數和列數
圖像的基本操作
最後我們來對圖像進行一些基本操作,無非就是改變當中的一些像素值,我們匯入一張空白的圖片,透過修改當中的像素值來往裡面加入一個黑點,程式碼如下
import cv2 import numpy as np img = cv2.imread('2.jpg') (x, y, z) = img.shape for i in range(-10, 10): for j in range(-10, 10): # 當Python也來進行修圖神器,發現是真的蠻好用的呢! !的正中心的位置来改变像素值, img[int(x/2) + i, int(y/2) + j] = (0, 0, 0) cv2.imshow("img", img) cv2.waitKey(0) cv2.destroyAllWindows()
output
以上是當Python也來進行修圖神器,發現是真的蠻好用的呢! !的詳細內容。更多資訊請關注PHP中文網其他相關文章!

numpyArraysareAreBetterFornumericalialoperations andmulti-demensionaldata,而learthearrayModuleSutableforbasic,內存效率段

numpyArraySareAreBetterForHeAvyNumericalComputing,而lelethearRayModulesiutable-usemoblemory-connerage-inderabledsswithSimpleDatateTypes.1)NumpyArsofferVerverVerverVerverVersAtility andPerformanceForlargedForlargedAtatasetSetsAtsAndAtasEndCompleXoper.2)

ctypesallowscreatingingangandmanipulatingc-stylarraysinpython.1)usectypestoInterfacewithClibrariesForperfermance.2)createc-stylec-stylec-stylarraysfornumericalcomputations.3)passarraystocfunctions foreforfunctionsforeffortions.however.however,However,HoweverofiousofmemoryManageManiverage,Pressiveo,Pressivero

Inpython,一個“列表” isaversatile,mutableSequencethatCanholdMixedDatateTypes,而“陣列” isamorememory-sepersequeSequeSequeSequeSequeRingequiringElements.1)列表

pythonlistsandArraysareBothable.1)列表Sareflexibleandsupportereceneousdatabutarelessmory-Memory-Empefficity.2)ArraysareMoremoremoremoreMemoremorememorememorememoremorememogeneSdatabutlesserversEversementime,defteringcorcttypecrecttypececeDepeceDyusagetoagetoavoavoiDerrors。

Python和C 各有優勢,選擇應基於項目需求。 1)Python適合快速開發和數據處理,因其簡潔語法和動態類型。 2)C 適用於高性能和系統編程,因其靜態類型和手動內存管理。

選擇Python還是C 取決於項目需求:1)如果需要快速開發、數據處理和原型設計,選擇Python;2)如果需要高性能、低延遲和接近硬件的控制,選擇C 。

通過每天投入2小時的Python學習,可以有效提升編程技能。 1.學習新知識:閱讀文檔或觀看教程。 2.實踐:編寫代碼和完成練習。 3.複習:鞏固所學內容。 4.項目實踐:應用所學於實際項目中。這樣的結構化學習計劃能幫助你係統掌握Python並實現職業目標。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

Dreamweaver Mac版
視覺化網頁開發工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

Atom編輯器mac版下載
最受歡迎的的開源編輯器

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。