Python 计算机视觉(二) —— OpenCV 基础
目錄
1. 安裝配置
2. OpenCV 基礎語法
(1)讀取圖像并顯示
?(2)調整顯示窗口大小
(3)調整圖像尺寸大小
(4)圖像灰度處理
3. 幾何圖形繪制
(1)繪制線段
(2)繪制矩形
(3)繪制圓形
(4)繪制橢圓
(5)添加文本?
總結
1. 安裝配置
打開 Pycharm --> 點擊 File --> 點擊 Settings
點擊 Project Interpreter --> 點擊 + 號
?
搜索 OpenCV 選擇合適的進行安裝即可
2. OpenCV 基礎語法
(1)讀取圖像并顯示
代碼如下:
我都進行了注釋,以大家的聰明才智我想是小菜一碟
運行上面所示的代碼(當然讀取圖像路徑要和你的圖像存儲位置一致)?
我們可以得出。。。。報錯了!!
報錯內容如下
cv2.error: OpenCV(4.5.3) C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-sn_xpupm\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
?
其實這是因為我們的存儲路徑中包含中文導致的,把圖像命名為英文并修改路徑即可
import cv2 # 調用opencv包 img = cv2.imread('E:\Python\StudyOfOpencv\qilin.jpeg') #讀取圖像位置 cv2.namedWindow("demo") #對顯示圖像的窗口進行命名 cv2.imshow("demo", img) #顯示圖像 cv2.waitKey(delay = 0) #無限期等待下一個命令?然后我們按回車鍵就可以退出當前的窗口?
?至于按下回車就可以退出窗口與我們前面設置的 delay 有關
delay > 0:窗口等待delay 毫秒;
delay < 0:等待鍵盤單擊;
delay = 0:無限期等待;
?(2)調整顯示窗口大小
從顯示出來的圖像我們可以看出,窗口的尺寸過大,導致整個屏幕都沒辦法完全顯示出來,所以我們要嘗試改變窗口的尺寸并進行顯示
改變窗口大小使用的是函數:
cv2.resizeWindow("windowname", width, height)得到效果如下,注意是對窗口尺寸大小進行調整而不是圖像尺寸大小?
(3)調整圖像尺寸大小
此處參考:?Opencv-python(cv2)改變圖像尺寸的cv2.resize()函數
上面修改窗口的尺寸后雖然有效果,但圖像的大小不進行修改則會對顯示的圖像進行截取,沒辦法讓我們觀察到完整的圖像
調整圖像的大小,我們主要使用到的函數是 cv2.resize() ,對其一些參數進行調整,得到想要的圖像
data = cv2.resize(img, dsize = None, fx = 0.5, fy = 0.5,interpolation = cv2.INTER_LINEAR) #將顯示的圖像寬和高都變為一半 cv2.imshow("demo", data) #顯示圖像運行后就可以得到如下的圖像:
(4)圖像灰度處理
import cv2 # 調用opencv包 img = cv2.imread('E:\Python\StudyOfOpencv\qilin.jpeg') #讀取圖像位置 cv2.namedWindow("demo") #對顯示圖像的窗口進行命名 img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) #對圖像進行灰度處理 cv2.imshow("demo", img_gray) #顯示灰度圖像 cv2.waitKey(delay = 0) #無限期等待下一個命令其中下面指出的這一句代碼
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) #對圖像進行灰度處理它是對圖像的通道進行修改,如果需要加強學習的可以參考:cvCvtColor函數
得到如下的灰度圖像?
3. 幾何圖形繪制
(1)繪制線段
使用 cv2.line() 函數就可以繪制線段
import cv2 # 調用opencv包 import numpy as np img1 = np.ones((500, 500, 3), np.uint8) #創建一張圖像 cv2.line(img1, (140, 160), (140, 320), (0, 0, 255), 3, cv2.LINE_AA) #繪制線段 cv2.imshow(" Image ", img1) cv2.waitKey(delay = 0)得到下面的圖像:?
?
然后我們對代碼進行簡單修改,觀察圖像發生的改變:
import cv2 # 調用opencv包 import numpy as np img1 = np.ones((500, 500, 3), np.uint8) #創建一張圖像 cv2.line(img1, (140, 160), (140, 320), (0, 255, 0), 3, cv2.LINE_AA) #繪制線段 cv2.imshow(" Image ", img1) cv2.waitKey(delay = 0)?
觀察上面兩處代碼的不同,注意在 cv 庫中改變顏色是 BGR 而不是 RGB??
如果想對圖像顏色進行調整,可以參考下面的文章:
RGB顏色表
下面整個活兒:
img1 = np.ones((500, 500, 3), np.uint8) #創建一張圖像 cv2.line(img1, (120, 40), (300, 40), (255, 0, 0), 3, cv2.LINE_AA) cv2.line(img1, (300, 40), (290, 180), (255, 0, 0), 3, cv2.LINE_AA) #繪制線段 cv2.line(img1, (195, 50), (185, 190), (255, 0, 0), 3, cv2.LINE_AA) #繪制線段 cv2.line(img1, (185, 190), (320, 190), (255, 0, 0), 3, cv2.LINE_AA) #繪制線段 cv2.line(img1, (320, 190), (310, 340), (255, 0, 0), 3, cv2.LINE_AA) #繪制線段 cv2.line(img1, (310, 340), (290, 320), (255, 0, 0), 3, cv2.LINE_AA) #繪制線段 cv2.line(img1, (120, 280), (280, 265), (255, 0, 0), 3, cv2.LINE_AA) #繪制線段 cv2.imshow(" Image ", img1) cv2.waitKey(delay = 0)?
(2)繪制矩形
首先像上面演示的那樣可以根據線段的起點和終點繪制矩形
也可以使用?cv2.rectangle(圖像,矩形左上角坐標,矩形右下角坐標,顏色) 函數進行矩形的繪制:
cv2.rectangle(img1, (100, 200), (280, 280), (0, 255, 0), 3, cv2.LINE_AA) cv2.rectangle(img1, (80, 180), (300, 300), (0, 255, 0), 3, cv2.LINE_AA) cv2.imshow(" Image ", img1) cv2.waitKey(delay = 0)?
(3)繪制圓形
繪制圓只要知道其圓心坐標和半徑就可以了
使用 cv2.circle(圖像,圓心坐標,半徑,顏色,是否填充)?就可以繪制圓了
cv2.circle(img1, (250, 250), 100, (0, 0, 255), -1) #-1代表進行填充 cv2.imshow(" Image ", img1) cv2.waitKey(delay = 0)?
(4)繪制橢圓
使用?cv2.ellipse(圖像,圓心坐標,長軸&短軸,起始角度,終止角度,顯示弧長的角度,顏色,是否填充)就可以了?
cv2.ellipse(img1, (256, 256), (100, 50), 0, 0, 360, (0, 255, 0), -1) cv2.imshow(" Image ", img1) cv2.waitKey(delay = 0)?
(5)添加文本?
使用 cv2.puttext(圖像,繪制的文字,位置,字體,縮放,顏色,線寬) 就可以進行文本的添加了
下面在上圖中添加文本
cv2.putText(img1, 'OpenCV', (230, 450), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2, cv2.LINE_AA)?
總結
這篇文章主要介紹了 OpenCv 中的幾個基礎語法(讀取圖像、顯示圖像、改變圖像大小等)以及繪制一些簡單的幾何圖像(線段、圓形、橢圓、矩形等),為后面的學習打下基礎
?
?
?
?
總結
以上是生活随笔為你收集整理的Python 计算机视觉(二) —— OpenCV 基础的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 计算机视觉(一) —— 数
- 下一篇: Python 计算机视觉(三)—— 数字