国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

Python+OpenCV圖像處理——實(shí)現(xiàn)輪廓發(fā)現(xiàn)

瀏覽:11日期:2022-07-07 11:28:13

簡介:輪廓發(fā)現(xiàn)是基于圖像邊緣提取的基礎(chǔ)尋找對(duì)象輪廓的方法,所以邊緣提取的閾值選定會(huì)影響最終輪廓發(fā)現(xiàn)結(jié)果。

代碼如下:

import cv2 as cvimport numpy as npdef contours_demo(image): dst = cv.GaussianBlur(image, (3, 3), 0) #高斯模糊去噪 gray = cv.cvtColor(dst, cv.COLOR_RGB2GRAY) ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_OTSU) #用大律法、全局自適應(yīng)閾值方法進(jìn)行圖像二值化 cv.imshow('binary image', binary) cloneTmage, contours, heriachy = cv.findContours(binary, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE) for i, contour in enumerate(contours): cv.drawContours(image, contours, i, (0, 0, 255), 2) print(i) cv.imshow('contours', image) for i, contour in enumerate(contours): cv.drawContours(image, contours, i, (0, 0, 255), -1) cv.imshow('pcontours', image)src = cv.imread(’E:/imageload/coins.jpg’)cv.namedWindow(’input_image’, cv.WINDOW_NORMAL) #設(shè)置為WINDOW_NORMAL可以任意縮放cv.imshow(’input_image’, src)contours_demo(src)cv.waitKey(0)cv.destroyAllWindows()

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

Python+OpenCV圖像處理——實(shí)現(xiàn)輪廓發(fā)現(xiàn)

注意:

1.Opencv發(fā)現(xiàn)輪廓的函數(shù)原型為:findContours(image, mode, method[, contours[, hierarchy[, offset]]]) -> image, contours, hierarchy

image參數(shù)表示8位單通道圖像矩陣,可以是灰度圖,但更常用的是二值圖像,一般是經(jīng)過Canny、拉普拉斯等邊緣檢測算子處理過的二值圖像。

mode參數(shù)表示輪廓檢索模式:

①CV_RETR_EXTERNAL:只檢測最外圍輪廓,包含在外圍輪廓內(nèi)的內(nèi)圍輪廓被忽略。

②CV_RETR_LIST:檢測所有的輪廓,包括內(nèi)圍、外圍輪廓,但是檢測到的輪廓不建立等級(jí)關(guān)系,彼此之間獨(dú)立,沒有等級(jí)關(guān)系,這就意味著這個(gè)檢索模式下不存在父輪廓或內(nèi)嵌輪廓。

③CV_RETR_CCOMP:檢測所有的輪廓,但所有輪廓只建立兩個(gè)等級(jí)關(guān)系,外圍為頂層,若外圍內(nèi)的內(nèi)圍輪廓還包含了其他的輪廓信息,則內(nèi)圍內(nèi)的所有輪廓均歸屬于頂層。

④CV_RETR_TREE:檢測所有輪廓,所有輪廓建立一個(gè)等級(jí)樹結(jié)構(gòu),外層輪廓包含內(nèi)層輪廓,內(nèi)層輪廓還可以繼續(xù)包含內(nèi)嵌輪廓。

method參數(shù)表示輪廓的近似方法:

①CV_CHAIN_APPROX_NONE 存儲(chǔ)所有的輪廓點(diǎn),相鄰的兩個(gè)點(diǎn)的像素位置差不超過1,即max (abs (x1 - x2), abs(y2 - y1) == 1。

②CV_CHAIN_APPROX_SIMPLE壓縮水平方向,垂直方向,對(duì)角線方向的元素,只保留該方向的終點(diǎn)坐標(biāo),例如一個(gè)矩形輪廓只需4個(gè)點(diǎn)來保存輪廓信息。

③CV_CHAIN_APPROX_TC89_L1,CV_CHAIN_APPROX_TC89_KCOS使用teh-Chinl chain 近似算法。

contours參數(shù)是一個(gè)list,表示存儲(chǔ)的每個(gè)輪廓的點(diǎn)集合。

hierarchy參數(shù)是一個(gè)list,list中元素個(gè)數(shù)和輪廓個(gè)數(shù)相同,每個(gè)輪廓contours[i]對(duì)應(yīng)4個(gè)hierarchy元素hierarchy[i][0] ~hierarchy[i][3],分別表示后一個(gè)輪廓、前一個(gè)輪廓、父輪廓、內(nèi)嵌輪廓的索引編號(hào),如果沒有對(duì)應(yīng)項(xiàng),則該值為負(fù)數(shù)。

offset參數(shù)表示每個(gè)輪廓點(diǎn)移動(dòng)的可選偏移量。

2.Opencv繪制輪廓的函數(shù)原型為:drawContours(image, contours, contourIdx, color[, thickness[, lineType[, hierarchy[, maxLevel[, offset]]]]]) -> image

imgae參數(shù)表示目標(biāo)圖像。

contours參數(shù)表示所有輸入輪廓。

contourIdx參數(shù)表示繪制輪廓list中的哪條輪廓, 如果是負(fù)數(shù),則繪制所有輪廓。

color參數(shù)表示輪廓的顏色。

thickness參數(shù)表示繪制的輪廓線條粗細(xì),如果是負(fù)數(shù),則繪制輪廓內(nèi)部。

lineType參數(shù)表示線型。

hierarchy參數(shù)表示有關(guān)層次結(jié)構(gòu)的可選信息。

maxLevel參數(shù)表示繪制輪廓的最大級(jí)別。 如果為0,則僅繪制指定的輪廓。 如果為1,則該函數(shù)繪制輪廓和所有嵌套輪廓。 如果為2,則該函數(shù)繪制輪廓,所有嵌套輪廓,所有嵌套到嵌套的輪廓,等等。 僅當(dāng)有可用的層次結(jié)構(gòu)時(shí)才考慮此參數(shù)。

offset參數(shù)表示可選的輪廓偏移參數(shù),該參數(shù)可按指定的方式移動(dòng)所有繪制的輪廓。

以上就是Python+OpenCV圖像處理——實(shí)現(xiàn)輪廓發(fā)現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于python 輪廓發(fā)現(xiàn)的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 国产精品揄拍一区二区 | 国产成人91一区二区三区 | 男女牲高爱潮免费视频男女 | 精品综合| 在线视频一区二区日韩国产 | 欧美一级特黄乱妇高清视频 | 步兵社区在线观看 | 成人精品视频一区二区三区 | 久久精品国产免费看久久精品 | 国模偷拍在线观看免费视频 | 国产成人精品久久一区二区小说 | 欧美日韩精品一区二区三区不卡 | 99精品热女视频专线 | 亚洲精品久久精品h成人 | 毛片在线视频在线播放 | 国产成人综合亚洲 | 久久91亚洲精品中文字幕 | 91精品国产一区二区三区左线 | 在线不卡一区二区三区日韩 | 黄网在线观看免费网站台湾swag | 国产成人18黄网站免费 | 精品国产午夜久久久久九九 | 男女乱淫视频 | 亚洲美女综合网 | 久久99视频免费 | 欧美成人欧美激情欧美风情 | 97高清国语自产拍中国大陆 | 久久亚洲私人国产精品 | 日本强不卡在线观看 | 亚洲不卡视频在线观看 | 日韩欧美一级a毛片欧美一级 | 中文字幕精品一区二区三区视频 | 亚洲男同视频网站 | 国产成人三级 | 欧美久久久久久久一区二区三区 | 亚洲国产小视频 | 牛牛本精品99久久精品88m | 欧美另类videosbestsex视频 | 在线a毛片免费视频观看 | 欧美一区二区三区激情视频 | 国产欧美一区二区三区视频 |