0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

OpenCV常用的 7 個(gè)示例(Python版)2

jf_78858299 ? 來(lái)源:小白玩轉(zhuǎn)Python ? 作者:二旺 ? 2023-02-07 16:23 ? 次閱讀

縮放和裁剪圖像

縮放是一個(gè)改變圖像形狀的過(guò)程。在 Opencv,我們可以使用 resize 函數(shù)來(lái)調(diào)整圖像的形狀。

語(yǔ)法

cv2.resize(IMG,(WIDTH,HEIGHT))
IMG: image which we want to resize
WIDTH: new width of the resize image
HEIGHT: new height of the resize image


Example
cv2.resize(img,(224,224))

要調(diào)整圖像的大小,我們首先需要知道圖像的形狀。我們可以利用 shape 找到圖像的形狀,然后根據(jù)當(dāng)前圖像的形狀,我們可以增大或減小圖像的大小。讓我們舉個(gè)例子來(lái)看看。

import cv2
img = cv2.imread("images/img0.jpg") ##Choose any image
print(img.shape)
imgResize = cv2.resize(img,(224,224)) ##Decrease size
imgResize2 = cv2.resize(img,(1024,1024)) ##Increase size
cv2.imshow("Image",img)
cv2.imshow("Image Resize",imgResize)
cv2.imshow("Image Increase size",imgResize2)
print(imgResize.shape)
cv2.waitKey(0)

如果您不想把圖像寬度和高度寫死,您也可以根據(jù)現(xiàn)有的形狀,然后根據(jù)比例改變圖像的寬度和高度。

import cv2
img = cv2.imread("images/img0.jpg") ##Choose any image
print(img.shape)
shape = img.shape
imgResize = cv2.resize(img,(shape[0]//2,shape[1]//2))##Decrease size
imgResize2 = cv2.resize(img,(shape[0]*2,shape[1]*2)) ##Increase size
cv2.imshow("Image",img)
cv2.imshow("Image Resize",imgResize)
cv2.imshow("Image Increase size",imgResize2)
print(imgResize.shape)
cv2.waitKey(0)

裁剪圖像

裁剪是獲取部分圖像的過(guò)程。在 OpenCV 中,我們可以通過(guò)定義裁剪后的矩形坐標(biāo)來(lái)執(zhí)行裁剪。

語(yǔ)法

imgCropped = img[y1:y2, x1:x2](x1,y1): top-left vertex
(x2,y2): bottom-right vertex


Example
imgCropped = img[0:100,200:200]

使用裁剪方法,讓我們嘗試從圖像中提取 Monalisa 的臉。

import cv2
img = cv2.imread("images/img0.jpg")
imgCropped = img[50:250,120:330]
cv2.imshow("Image cropped",imgCropped)
cv2.imshow("Image",img)
cv2.waitKey(0)

您還可以使用繪畫模式來(lái)查找(x1,y1)、(x2,y2)的正確坐標(biāo)。

這里有個(gè)小任務(wù):

任務(wù) :右鍵單擊圖像并保存它; 嘗試從圖像中獲取國(guó)王卡。

提示 :使用繪畫模式找到正確的坐標(biāo),最后,使用調(diào)整大小,以增加裁剪圖像的大小。

使用函數(shù)的基本圖像濾波器

我們可以在圖像上使用許多基本的濾波器,比如將圖片轉(zhuǎn)換成灰度、模糊等等。

從 Img 到 gray

為了將圖像從彩色圖像轉(zhuǎn)換為灰度圖像,我們可以使用函數(shù) cv2.cvtColor,在這里我們傳遞 cv2.COLOR_BGR2GRAY 作為參數(shù)

語(yǔ)法

imgGray = cv2.cvtColor(IMG,cv2.CODE)
IMG: Original image
CODE: Conversion code for Gray(COLOR_BGR2GRAY)


Example
imgGray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

從 Img 到 HSV

為了將圖像轉(zhuǎn)換為 HSV 顏色空間,我們可以使用函數(shù) cv2.cvtColor,這里我們傳遞 cv2.COLOR_BGR2HSV 作為參數(shù)。它主要用于目標(biāo)跟蹤。

語(yǔ)法

imgGray = cv2.cvtColor(IMG,cv2.CODE)
IMG: Original image
CODE: Conversion code for Gray(COLOR_BGR2HSV)


Example
imgHsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)

模糊圖像

模糊用于去除圖像中的噪聲,也稱為平滑。它是對(duì)圖像應(yīng)用低通濾波器的過(guò)程。在 OpenCV 中對(duì)圖像進(jìn)行模糊,我們常用 GaussianBlur。

語(yǔ)法

imgBlur = cv2.GaussianBlur(img,(sigmaX,sigmaY),kernalSize)


kernalsize ? A Size object representing the size of the kernel.
sigmaX ? A variable representing the Gaussian kernel standard deviation in X direction.
sigmaY - same as sigmaX


Exmaple
imgBlur = cv2.GaussianBlur(img,(3,3),0)

邊緣檢測(cè)

在 OpenCV 中,我們使用 Canny算子來(lái)檢測(cè)圖像中的邊緣。也有不同的邊緣檢測(cè)器,但最著名的是 Canny算子。Canny算子邊緣檢測(cè)是一種邊緣檢測(cè)算子,它使用多級(jí)算法來(lái)檢測(cè)圖像中的大范圍邊緣,是由 John F. Canny 在1986年提出的。

語(yǔ)法

imgCanny = cv2.Canny(img,threshold1,threshold2)


threshold1,threshold2:Different values of threshold different for every images


Example
imgCanny = cv2.Canny(img,100,150)
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C++
    C++
    +關(guān)注

    關(guān)注

    21

    文章

    2085

    瀏覽量

    73304
  • 計(jì)算機(jī)視覺
    +關(guān)注

    關(guān)注

    8

    文章

    1685

    瀏覽量

    45811
  • OpenCV
    +關(guān)注

    關(guān)注

    29

    文章

    622

    瀏覽量

    41091
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    60個(gè)重要的Python示例

    60個(gè)重要的Python示例
    發(fā)表于 10-26 09:29 ?575次閱讀

    【Raspberry Pi 3試用體驗(yàn)】+Opencv+python的人臉識(shí)別

    ;)看一下效果:光線不好還是能認(rèn)出來(lái),說(shuō)明opencv自帶的分類器算開源里面不錯(cuò)的了~參考:Tigerboard開發(fā)板試用體驗(yàn) python+opencv的人臉識(shí)別 NanoPi2試用體驗(yàn) 簡(jiǎn)單人臉識(shí)別-結(jié)項(xiàng)
    發(fā)表于 05-13 21:38

    LabVIEW+Python+openCV

    的,動(dòng)態(tài)鏈接庫(kù)也需要配置,還需要知道各個(gè)參數(shù)含義和類型,這里提供另外一種方法,那就是PythonopenCV工具包,絕對(duì)開源和免費(fèi),LabVIEW可以利用Python節(jié)點(diǎn)調(diào)用Python
    發(fā)表于 12-07 20:59

    OpenCV-Python-Toturial-中文版

    python編寫opencv的入門資料,介紹了python的各個(gè)函數(shù)的應(yīng)用
    發(fā)表于 03-23 14:55 ?0次下載

    遍歷圖像像素的14種方法_OpenCV2版書本配套示例程序24

    遍歷圖像像素的14種方法_OpenCV2版書本配套示例程序24,來(lái)自一本國(guó)外OpenCV2書籍的示例-遍歷圖像像素的14種方法。
    發(fā)表于 06-06 15:20 ?0次下載

    python圖像處理opencv步驟是怎么樣的

    越來(lái)越覺得python是一強(qiáng)大的工具,處理樣本確實(shí)不錯(cuò)。最近因項(xiàng)目需要涉及到圖片處理,所以開始用python調(diào)用opencv,再次覺得python真乃神器也!
    發(fā)表于 12-04 15:29 ?4346次閱讀

    OpenCV中的Python實(shí)現(xiàn)

    OpenCV是一個(gè)基于BSD許可(開源)發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺庫(kù),可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。它輕量級(jí)而且高效——由一系列 C 函數(shù)和少量 C++
    的頭像 發(fā)表于 08-25 15:55 ?1990次閱讀

    Linux Debian與Python、Flask和OpenCV識(shí)別面部

    電子發(fā)燒友網(wǎng)站提供《Linux Debian與Python、Flask和OpenCV識(shí)別面部.zip》資料免費(fèi)下載
    發(fā)表于 08-24 10:16 ?2次下載
    Linux Debian與<b class='flag-5'>Python</b>、Flask和<b class='flag-5'>OpenCV</b>識(shí)別面部

    使用opencvpython進(jìn)行智能火災(zāi)檢測(cè)

    電子發(fā)燒友網(wǎng)站提供《使用opencvpython進(jìn)行智能火災(zāi)檢測(cè).zip》資料免費(fèi)下載
    發(fā)表于 11-02 15:08 ?0次下載
    使用<b class='flag-5'>opencv</b>和<b class='flag-5'>python</b>進(jìn)行智能火災(zāi)檢測(cè)

    Python OpenCV 的學(xué)習(xí)路線與重要知識(shí)點(diǎn)匯總 2

    類構(gòu)成,提供了 Python、Ruby、MATLAB 等語(yǔ)言的接口,所以在學(xué)習(xí)的時(shí)候,要注意查閱資料的語(yǔ)言實(shí)現(xiàn)相關(guān)問(wèn)題。 這個(gè)階段除了安裝 OpenCV 相關(guān)庫(kù)以外,建議收藏官方網(wǎng)址,官方手冊(cè),官方入門教程,這些都是最佳的學(xué)習(xí)資料。
    的頭像 發(fā)表于 02-07 15:35 ?605次閱讀

    OpenCV常用7 個(gè)示例Python版)1

    OpenCV是計(jì)算機(jī)視覺領(lǐng)域最流行的庫(kù)之一。它最初是用 C 和 C++ 編寫的?,F(xiàn)在也可以在 Python 中使用。它最初是由英特爾開發(fā)的。該庫(kù)是一個(gè)跨平臺(tái)的開源庫(kù)。免費(fèi)使用。OpenCV
    的頭像 發(fā)表于 02-07 16:23 ?1068次閱讀

    OpenCV常用7 個(gè)示例Python版)3

    OpenCV是計(jì)算機(jī)視覺領(lǐng)域最流行的庫(kù)之一。它最初是用 C 和 C++ 編寫的。現(xiàn)在也可以在 Python 中使用。它最初是由英特爾開發(fā)的。該庫(kù)是一個(gè)跨平臺(tái)的開源庫(kù)。免費(fèi)使用。OpenCV
    的頭像 發(fā)表于 02-07 16:23 ?932次閱讀

    python opencv運(yùn)動(dòng)檢測(cè)代碼分享

      本文實(shí)例為大家分享了 python opencv 運(yùn)動(dòng)檢測(cè)的具體代碼,供大家  參考,具體內(nèi)容如下  # -*- coding:utf-8 -*-  __author__ = ‘kingking
    發(fā)表于 07-20 11:44 ?1次下載

    Python實(shí)現(xiàn)OpenCV的安裝與使用

      本文實(shí)例講述了 Python 實(shí)現(xiàn) OpenCV 的安裝與使用。分享給大家供 大家參考,具體如下:  由于下一步要開始研究下深度學(xué)習(xí),而深度學(xué)習(xí)領(lǐng)域很多的算法和應(yīng) 用都是用 Python 來(lái)實(shí)現(xiàn)
    發(fā)表于 07-20 11:46 ?7次下載

    opencv-pythonopencv一樣嗎

    不一樣。OpenCV(Open Source Computer Vision Library)是一個(gè)開源的計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫(kù),它提供了大量的圖像和視頻處理功能。OpenCV-Python
    的頭像 發(fā)表于 07-16 10:38 ?449次閱讀