目標
在本教程中,您將學習如何:
- 從檔案中讀取影像(使用cv.imread)
- 在 OpenCV 視窗中顯示影像(使用cv.imshow)
- 將影像寫入檔案(使用cv.imwrite)
源代碼
- Code at glance:
import cv2 as cv
import sys
# img = cv.imread("./fenli.jpg")
img = cv.imread ( cv.samples.findFile ( "fenli.jpg" ))
if img is None:
sys.exit("Could not read the image.")
cv.imshow("Display window",img)
k = cv.waitKey(0) # imshow之后必須有waitKey函式,否則顯示窗內將一閃而過,不會駐留螢屏
if k == ord("s"):
cv.imwrite("fenli.jpg",img)
- Result at glance:

解釋
第一步,匯入 OpenCV python 庫,執行此操作的正確方法是另外為其分配名稱cv,該名稱在以下用于參考庫,
import cv2 as cv
import sys
現在,讓我們分析主要代碼,作為第一步,我們從 OpenCV 樣本中讀取影像“fenli.jpg”,為此,呼叫cv::imread函式使用第一個引數指定的檔案路徑加載影像,第二個引數是可選的,它指定我們想要的影像格式,這可能是:
- IMREAD_COLOR 以 BGR 8 位格式加載影像,這是此處使用的默認值,
- IMREAD_UNCHANGED 按原樣加載影像(包括 alpha 通道,如果存在)
- IMREAD_GRAYSCALE 將影像作為強度加載
讀入影像資料后將存盤在一個cv::Mat物件中,
img = cv.imread ( cv.samples.findFile ( "fenli.jpg" ))
筆記
OpenCV 支持影像格式 Windows 位圖 (bmp)、可移植影像格式 (pbm、pgm、ppm) 和太陽光柵 (sr、ras),借助插件(如果您自己構建庫,則需要指定使用它們,但在我們默認提供的軟體包中)您還可以加載影像格式,如 JPEG(jpeg、jpg、jpe)、JPEG 2000(jp2 -在 CMake 中代號為 Jasper)、TIFF 檔案(tiff、tif)和可移植網路圖形(png),此外,OpenEXR 也是一種可能,
之后,如果影像加載正確,則會執行檢查,
if img is None:
sys.exit("Could not read the image.")
然后,使用對cv::imshow函式的呼叫來顯示影像,第一個引數是視窗的標題,第二個引數是要顯示的cv::Mat物件,
因為我們希望我們的視窗在用戶按下一個鍵之前一直顯示(否則程式會很快結束),我們使用cv::waitKey函式,它的唯一引數是它應該等待用戶輸入多長時間(以毫秒),零意味著永遠等待,回傳值是被按下的鍵,
cv.imshow("Display window",img)
k = cv.waitKey(0)
最后,如果按下的鍵是“s”鍵,則將影像寫入檔案,為此呼叫cv::imwrite函式,該函式具有檔案路徑和cv::Mat物件作為引數,
if k == ord("s"):
cv.imwrite("fenli.jpg",img)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/433208.html
標籤:AI
