国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

7.OpenCV-圖像輪廓

這篇具有很好參考價(jià)值的文章主要介紹了7.OpenCV-圖像輪廓。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1.通過OpenCV的findContours可以很方便的找到圖片中內(nèi)容的輪廓。

2.為了提取輪廓有更高的準(zhǔn)確率,在提取輪廓前,需要對(duì)圖片進(jìn)行預(yù)處理(二值+閾值),只保留感興趣的圖像。

3.通過計(jì)算輪廓面積與外接矩形或外接圓的面積,可以找到輪廓特征,進(jìn)一步篩選出感興趣的輪廓。

語法:cv2.findContours(img,mode,method)
mode:輪廓檢索模式
RETR_EXTERNAL:只檢最外面的輪廊
RETR_LIST:檢索所有的輪廊,并將其保存到一條鏈表當(dāng)中
RETR_CCOMP:檢索所有的輪廓,并將他們組織為兩層:頂層是各部份的外部邊界,第二層是空洞的邊界
RETR_TREE:檢索所有的輪廓,并重構(gòu)嵌套輪廓的整個(gè)層次(常用這個(gè))
method:輪廓逼近方法
CHAIN_APPROX_NONE:以Freeman鏈碼的方式輸出輪廓,所有其他方法輸出多邊形(頂點(diǎn)的序列)。
CHAIN_APPROX_SIMPLE:壓縮水平的、垂直的和斜的部,也就是,函數(shù)只保留他們的終點(diǎn)部分。
為了更高的準(zhǔn)確率,使用二值圖像

示例代碼?

import cv2
import math
import numpy as np

#圖像輪廓
#語法:cv2.findContours(img,mode,method)
# mode:輪廓檢索模式
#RETR_EXTERNAL:只檢最外面的輪廊
#RETR_LIST:檢索所有的輪廊,并將其保存到一條鏈表當(dāng)中
#RETR_CCOMP:檢索所有的輪廓,并將他們組織為兩層:頂層是各部份的外部邊界,第二層是空洞的邊界
#RETR_TREE:檢索所有的輪廓,并重構(gòu)嵌套輪廓的整個(gè)層次
# method:輪廓逼近方法
#CHAIN_APPROX_NONE:以Freeman鏈碼的方式輸出輪廓,所有其他方法輸出多邊形(頂點(diǎn)的序列)。
#CHAIN_APPROX_SIMPLE:壓縮水平的、垂直的和斜的部,也就是,函數(shù)只保留他們的終點(diǎn)部分。
#為了更高的準(zhǔn)確率,使用二值圖像

def cv_show(name, img):
    cv2.imshow(name, img)  # 顯示圖像
    cv2.waitKey(0)         # 等待時(shí)間,單位毫秒,0表示任意鍵終止
    cv2.destroyAllWindows()

#1.讀取圖像
image = cv2.imread("C:\\Users\\zhangqs\\Desktop\\cv.png")

#2.預(yù)處理
gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)                 #灰度圖
ret,threshold=cv2.threshold(gray,160,255,cv2.THRESH_BINARY) #閾值處理

#3.查找輪廓
contours,hierarchy=cv2.findContours(threshold,cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE)

print('共找到',len(contours),'個(gè)輪廓')
#4.繪制輪廓

#在原圖上繪制輪廓
draw2=image.copy() #注意:需要copy一下,否則將會(huì)改動(dòng)原圖
drawed2=cv2.drawContours(draw2,contours,-1,(0,0,255),2)  #圖像,輪廓,輪廓索引,顏色模式,線條厚度
cv_show('draw_contours',draw2)

#在灰度圖上繪制輪廓(下面的np.hstack函數(shù)要求數(shù)組維度一致,才能比較顯示)
draw=gray.copy() #注意:需要copy一下,否則將會(huì)改動(dòng)原圖
drawed=cv2.drawContours(draw,contours,-1,(0,0,255),2)  #圖像,輪廓,輪廓索引,顏色模式,線條厚度

#5.輪廓近似

#外接矩形(綠色線)
cnt=contours[12]
# epsilon=0.1*cv2.arcLength(cnt,True)
# approx=cv2.approxPolyDP(cnt,epsilon,True)
x,y,w,h=cv2.boundingRect(cnt)
imgRectangle=cv2.rectangle(image,(x,y),(x+w,y+h),(0,255,0),2)
cv_show('Rectangle',imgRectangle)

area=cv2.contourArea(cnt) #輪廓面積
rectArea=w*h #外接矩形面積
rate=float(area)/rectArea
print('輪廓面積/外接矩形面積比:',rate)

#外接圓(藍(lán)色線)
cnt2=contours[11] 
(x,y),radius=cv2.minEnclosingCircle(cnt2)
center=(int(x),int(y))
radius=int(radius)
imgCircle=cv2.circle(image,center,radius,(255,0,0),2)
cv_show('Circle',imgCircle)
areaCircle=cv2.contourArea(cnt) #輪廓面積
rectArea=math.pi*radius*radius #外接圓面積
rateCircle=float(areaCircle)/areaCircle
print('輪廓面積/外接圓面積比:',rateCircle)


# #合并顯示
# res=np.hstack((gray,threshold,drawed)) #注意:兩層括號(hào)
# cv2.imshow('all',res)
# cv2.waitKey(0)
# cv2.destroyAllWindows()


運(yùn)行結(jié)果

7.OpenCV-圖像輪廓

?原圖?

7.OpenCV-圖像輪廓

輪廓圖?

7.OpenCV-圖像輪廓

外接矩形(綠色線條)?

7.OpenCV-圖像輪廓

?外接圓(藍(lán)色線條)

7.OpenCV-圖像輪廓

?遍歷輪廓,通過計(jì)算面積比,就可以找到輪廓特征,也就篩選出我們感興趣的輪廓了。文章來源地址http://www.zghlxwxcb.cn/news/detail-491839.html

到了這里,關(guān)于7.OpenCV-圖像輪廓的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • opencv通過輪廓點(diǎn)生成閉合圖像

    有時(shí)候需要將某一些點(diǎn)生成閉合的二值圖像。記錄一下。

    2024年01月17日
    瀏覽(15)
  • 【Python】【OpenCV】關(guān)于cv2.findContours()輪廓索引(編號(hào))解析(RETR_TREE)

    【Python】【OpenCV】關(guān)于cv2.findContours()輪廓索引(編號(hào))解析(RETR_TREE)

    在打算自己實(shí)現(xiàn)二維碼的定位的時(shí)候,看到了相關(guān)博文的關(guān)于cv2.findContours返回的層級(jí)信息來定位三個(gè)“回”字從而達(dá)到定位二維碼的目的,但是返回的hierarchy中的層級(jí)信息分別對(duì)應(yīng)的是哪個(gè)輪廓卻困擾了許久,查閱了很多資料最后還是自己手動(dòng)找出了清晰的規(guī)律。 關(guān)于hier

    2024年02月04日
    瀏覽(26)
  • 【OpenCV常用函數(shù):輪廓檢測+外接矩形檢測】cv2.findContours()+cv2.boundingRect()

    【OpenCV常用函數(shù):輪廓檢測+外接矩形檢測】cv2.findContours()+cv2.boundingRect()

    對(duì)具有黑色背景的二值圖像尋找白色區(qū)域的輪廓,因此一般都會(huì)先經(jīng)過cvtColor()灰度化和threshold()二值化后的圖像作為輸入。 例如,如下的輪廓檢測出的結(jié)果contours和hierarchy。 根據(jù)輪廓點(diǎn)檢測對(duì)應(yīng)輪廓的外接矩形

    2024年02月13日
    瀏覽(90)
  • 【opencv】 利用圖像輪廓函數(shù)填充輪廓內(nèi)部
  • c# opencv 找到圖像的輪廓,并繪制輪廓

    c# opencv 找到圖像的輪廓,并繪制輪廓

    原圖? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 結(jié)果圖? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 本意是想去除白色圖像周邊的幾個(gè)白色小點(diǎn),得到輪廓圖后,其他都設(shè)置為黑色,結(jié)果是白點(diǎn)更明

    2024年02月13日
    瀏覽(20)
  • OpenCv之圖像輪廓

    OpenCv之圖像輪廓

    目錄 一、圖像輪廓定義 二、繪制輪廓 三、計(jì)算輪廓面積與周長 圖像輪廓是具有相同顏色或灰度的連續(xù)帶你的曲線.輪廓在形狀分析和物體的檢測和識(shí)別中很有用 輪廓的作用: 用于圖形分析 物體的識(shí)別與檢測 注意點(diǎn): 為了檢測的準(zhǔn)確性,需要先對(duì)圖像進(jìn)行二值化或Canny操作 畫

    2024年02月17日
    瀏覽(24)
  • OpenCV 10(圖像輪廓)

    OpenCV 10(圖像輪廓)

    圖像輪廓是具有相同顏色或灰度的連續(xù)點(diǎn)的曲線. 輪廓在形狀分析和物體的檢測和識(shí)別中很有用。 輪廓的作用: - 用于圖形分析 - 物體的識(shí)別和檢測 注意點(diǎn): - 為了檢測的準(zhǔn)確性,需要先對(duì)圖像進(jìn)行** 二值化**或**Canny操作 **。 - 畫輪廓時(shí)會(huì)修改輸入的圖像, 如果之后想繼續(xù)使用

    2024年02月09日
    瀏覽(30)
  • 7.OpenCV-圖像輪廓

    7.OpenCV-圖像輪廓

    1.通過OpenCV的findContours可以很方便的找到圖片中內(nèi)容的輪廓。 2.為了提取輪廓有更高的準(zhǔn)確率,在提取輪廓前,需要對(duì)圖片進(jìn)行預(yù)處理(二值+閾值),只保留感興趣的圖像。 3.通過計(jì)算輪廓面積與外接矩形或外接圓的面積,可以找到輪廓特征,進(jìn)一步篩選出感興趣的輪廓。

    2024年02月09日
    瀏覽(28)
  • OpenCv之圖像輪廓(二)

    OpenCv之圖像輪廓(二)

    目錄 一、多邊形逼近 二、凸包 ?三、最小外接矩形與最大外接矩形 參照函數(shù): approxPolyDP就是以多邊形去逼近輪廓,采用的是Douglas-Peucker算法(DP) DP算法原理比較簡單,核心就是不斷找多邊形最遠(yuǎn)的點(diǎn)加入形成新的多邊形,直到最短距離小于指定的精度。 案例代碼如下: 運(yùn)行結(jié)

    2024年02月17日
    瀏覽(20)
  • opencv圖像輪廓檢測

    opencv圖像輪廓檢測

    效果展示: 代碼部分:

    2024年02月12日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包