RM新时代网站-首页

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版)3

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

膨脹

膨脹被用來增加圖像中邊緣的大小。首先,我們定義了奇數(shù)(5,5)的核矩陣大小。然后使用內(nèi)核,我們對(duì)圖像執(zhí)行膨脹。下面我們對(duì) Canny 算子的輸出圖像進(jìn)行了膨脹。

語法

kernel = np.ones((5,5),np.uint8) ## DEFINING KERNEL OF 5x5
imgDialation = cv2.dilate(imgCanny,kernel,iterations=1) ##DIALATION

腐蝕

侵蝕與膨脹正好相反。該算法用于減小圖像中邊緣的大小。首先,我們定義了奇數(shù)(5,5)的核矩陣大小。然后使用內(nèi)核,我們對(duì)圖像執(zhí)行腐蝕。下面我們對(duì) Canny 算子的輸出圖像進(jìn)行腐蝕處理。

kernel = np.ones((5,5),np.uint8) ## DEFINING KERNEL OF 5x5
imgDialation = cv2.erode(imgCanny,kernel,iterations=1) ##EROSION

現(xiàn)在,在同一個(gè)程序中使用上述基本函數(shù)處理 Monalisa 圖像。

繪制不同的形狀

我們可以使用 OpenCV 繪制不同的形狀,像矩形,圓形,線等。

長(zhǎng)方形:

要在圖像上繪制一個(gè)矩形,我們使用 cv2.rectangle 函數(shù)。在函數(shù)中,我們將寬度、高度、 x、 y、 RGB 中的顏色、深度作為參數(shù)傳遞。

語法

cv2.rectangle(img,(w,h),(x,y),(R,G,B),THICKNESS)
w: width
h: height
x: distance from x axis
y: distance from y axis
R,G,B: color in RGB form (255,255,0)
THICKNESS: thickness of rectangel(integer)Example
cv2.rectangle(img,(100,300),(200,300),(255,0,255),2)

圓形:

為了繪制一個(gè)圓形,我們使用 cv2.circle 函數(shù)。我們傳遞 x,y,半徑大小,RGB 顏色,深度作為參數(shù)。

語法

cv2.circle(img,(x,y),radius,(R,G,B),THICKNESS)
x: distance from x axis
y: distance from y axis
radius: size of radius(integer)
R,G,B: color in RGB form (255,255,0)
THICKNESS: thickness of rectangel(integer)Example
cv2.circle(img,(200,130),90,(255,255,0),2)

直線:

要繪制一條直線,我們使用 cv2.line 函數(shù)傳遞起始點(diǎn)(x1,y1)、終點(diǎn)(x2,y2)、 RGB 格式的顏色、深度作為參數(shù)。

語法

cv2.line(img,(x1,y1),(x2,y2),(R,G,B),THICKNESS)x1,y1: start point of line (integer)
x2,y2: end point of line (integer)
R,G,B: color in RGB form (255,255,0)
THICKNESS: thickness of rectangel(integer)Example
cv2.line(img,(110,260),(300,260),(0,255,0),3)

在圖像上寫文字

在 OpenCV 中,我們有一個(gè)函數(shù) cv2.puttext,用于在特定位置在圖像上寫入文本。它以圖像、文本、 x、 y、顏色、字體、字號(hào)、粗細(xì)作為輸入?yún)?shù)。

語法

cv2.putText(img,text,(x,y),FONT,FONT_SCALE,(R,G,B),THICKNESS)
img: image to put text on
text: text to put on image
X: text distance from X axis
Y: text distance from Y axis
FONT: Type of FONT (ALL FONT TYPES)
FONT_SCALE: Scale of Font(Integer)
R,G,B: color in RGB form (255,255,0)
THICKNESS: thickness of rectangel(integer)Example
cv2.putText(img,"HELLO",(120,250),cv2.FONT_HERSHEY_COMPLEX,1,(255,255,255),2)

檢測(cè)和裁剪人臉

人臉檢測(cè)在人臉識(shí)別系統(tǒng)中非常有用。在 OpenCV 中,我們有許多預(yù)先訓(xùn)練的 haar 級(jí)聯(lián)分類器可用于不同的任務(wù)。以下網(wǎng)址可以查看 OpenCV GitHub 上的分類器列表:https://github.com/opencv/opencv/tree/master/data/haarca

scades。

我們使用 haarcascade_frontalface_default.xml 分類器來檢測(cè)圖像中的人臉。它將返回圖像的四個(gè)坐標(biāo)(w,h,x,y)。使用這些坐標(biāo),我們要在臉上畫一個(gè)矩形,然后使用相同的坐標(biāo),繼續(xù)裁剪人臉。最后使用 imwrite,把裁剪后的圖像保存到目錄中。

import cv2
# Load the cascade
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')# Read the input image
img = cv2.imread('images/img0.jpg')# Convert into grayscale
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# Detect faces
faces = face_cascade.detectMultiScale(gray, 1.3, 4)# Draw rectangle around the faces
for (x, y, w, h) in faces:
    cv2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0), 2)
    # Cropping Face
    crop_face = img[y:y + h, x:x + w]
    #Saving Cropped Face
    cv2.imwrite(str(w) + str(h) + '_faces.jpg', crop_face)
cv2.imshow('img', img)
cv2.imshow("imgcropped",crop_face)
cv2.waitKey()

圖片

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

    關(guān)注

    22

    文章

    2108

    瀏覽量

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

    關(guān)注

    8

    文章

    1698

    瀏覽量

    45972
  • OpenCV
    +關(guān)注

    關(guān)注

    31

    文章

    634

    瀏覽量

    41337
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

    LabVIEW+Python+openCV

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

    播放視頻_OpenCV3版書本配套示例程序06

    OpenCV3編程入門》OpenCV3版書本配套示例程序06,使用VideoCapture類進(jìn)行視頻讀取和播放。
    發(fā)表于 06-06 15:20 ?0次下載

    邊緣檢測(cè)綜合示例_OpenCV3版書本配套示例程序60

    OpenCV3編程入門》書本配套源代碼:邊緣檢測(cè)綜合示例,邊緣檢測(cè)綜合示例——Canny算子,Sobel算子,Laplace算子,Scharr濾波器合輯。
    發(fā)表于 06-06 15:25 ?0次下載

    仿射變換綜合示例_《OpenCV3編程入門》書本配套源代碼

    OpenCV3編程入門》書本配套源代碼:仿射變換綜合示例
    發(fā)表于 06-06 15:39 ?5次下載

    實(shí)現(xiàn)多種重映射綜合示例_《OpenCV3編程入門》書本配套源代碼

    OpenCV3編程入門》書本配套源代碼:實(shí)現(xiàn)多種重映射綜合示例
    發(fā)表于 06-06 15:39 ?4次下載

    漫水填充算法綜合示例_《OpenCV3編程入門》書本配套源代碼

    OpenCV3編程入門》書本配套源代碼:漫水填充算法綜合示例
    發(fā)表于 06-06 15:39 ?2次下載

    形態(tài)學(xué)圖像處理綜合示例_《OpenCV3編程入門》書本配套源代碼

    OpenCV3編程入門》書本配套源代碼:形態(tài)學(xué)圖像處理綜合示例
    發(fā)表于 06-06 15:52 ?8次下載

    圖像濾波綜合示例_《OpenCV3編程入門》書本配套源代碼

    OpenCV3編程入門》書本配套源代碼:圖像濾波綜合示例
    發(fā)表于 06-06 15:52 ?6次下載

    OpenCV3編程入門-源碼例程全集-resize函數(shù)用法示例

    OpenCV3編程入門-源碼例程全集-resize函數(shù)用法示例
    發(fā)表于 09-18 16:38 ?2次下載

    OpenCV3編程入門-源碼例程全集-sobel函數(shù)用法示例

    OpenCV3編程入門-源碼例程全集-sobel函數(shù)用法示例
    發(fā)表于 09-18 16:38 ?1次下載

    OpenCV3編程入門-源碼例程全集-pyrUp函數(shù)用法示例

    OpenCV3編程入門-源碼例程全集-pyrUp函數(shù)用法示例
    發(fā)表于 09-18 16:38 ?0次下載

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

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

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

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

    opencv-pythonopencv一樣嗎

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