日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python 计算机视觉(二) —— OpenCV 基础

發布時間:2025/3/19 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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)讀取圖像并顯示

代碼如下:
我都進行了注釋,以大家的聰明才智我想是小菜一碟

import cv2 # 調用opencv包 img = cv2.imread('E:\Python\StudyOfOpencv\琪琳.jpeg') #讀取圖像位置 cv2.namedWindow("demo") #對顯示圖像的窗口進行命名 cv2.imshow("demo", img) #顯示圖像 cv2.waitKey(delay = 0) #無限期等待下一個命令

運行上面所示的代碼(當然讀取圖像路徑要和你的圖像存儲位置一致)?

我們可以得出。。。。報錯了!!

報錯內容如下

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 基础的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。