當Python也來進行修圖神器,發現是真的蠻好用的呢! !
今天小編來和大家分享一下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中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

VS Code可以在Windows 8上運行,但體驗可能不佳。首先確保系統已更新到最新補丁,然後下載與系統架構匹配的VS Code安裝包,按照提示安裝。安裝後,注意某些擴展程序可能與Windows 8不兼容,需要尋找替代擴展或在虛擬機中使用更新的Windows系統。安裝必要的擴展,檢查是否正常工作。儘管VS Code在Windows 8上可行,但建議升級到更新的Windows系統以獲得更好的開發體驗和安全保障。

VS Code 可用於編寫 Python,並提供許多功能,使其成為開發 Python 應用程序的理想工具。它允許用戶:安裝 Python 擴展,以獲得代碼補全、語法高亮和調試等功能。使用調試器逐步跟踪代碼,查找和修復錯誤。集成 Git,進行版本控制。使用代碼格式化工具,保持代碼一致性。使用 Linting 工具,提前發現潛在問題。

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。

在 VS Code 中,可以通過以下步驟在終端運行程序:準備代碼和打開集成終端確保代碼目錄與終端工作目錄一致根據編程語言選擇運行命令(如 Python 的 python your_file_name.py)檢查是否成功運行並解決錯誤利用調試器提升調試效率
