??邊緣檢測(cè)雖然能夠檢測(cè)出邊緣,但邊緣是不連續(xù)的,檢測(cè)到的邊緣并不是一個(gè)整體。圖像輪廓是指將邊緣連接起來(lái)形成的一個(gè)整體,用于后續(xù)的計(jì)算。
創(chuàng)新互聯(lián)建站于2013年成立,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站建設(shè)、成都網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元永和做網(wǎng)站,已為上家服務(wù),為永和各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話(huà):18980820575
??OpenCV提供了查找圖像輪廓的函數(shù)cv2.findContours(),該函數(shù)能夠查找圖像內(nèi)的輪廓信息,而函數(shù)cv2.drawContours()能夠?qū)⑤喞L制出來(lái)。
??圖像輪廓是圖像中非常重要的一個(gè)特征信息,通過(guò)對(duì)圖像輪廓的操作,我們能夠獲取目標(biāo)圖像的大小、位置、方向等信息。
函數(shù)cv2.findContours()的語(yǔ)法格式為:
式中的返回值為:
式中的參數(shù)為:
在OpenCV中,可以使用函數(shù)cv2.drawContours()繪制圖像輪廓。該函數(shù)的語(yǔ)法格式是:
【例12.1】繪制一幅圖像內(nèi)的所有輪廓。
如果要繪制圖像內(nèi)的所有輪廓,需要將函數(shù)cv2.drawContours()的參數(shù)contourIdx的值設(shè)置為“-1”。
【例12.2】逐個(gè)顯示一幅圖像內(nèi)的邊緣信息。
【例12.3】使用輪廓繪制功能,提取前景對(duì)象。
將函數(shù)cv2.drawContours()的參數(shù)thickness的值設(shè)置為“-1”,可以繪制前景對(duì)象的實(shí)心輪廓。將該實(shí)心輪廓與原始圖像進(jìn)行“按位與”操作,即可將前景對(duì)象從原始圖像中提取出來(lái)。
本例中將函數(shù)cv2.drawContours()的參數(shù)thickness設(shè)置為“-1”,得到了前景對(duì)象的實(shí)心輪廓mask。接下來(lái),通過(guò)語(yǔ)句“cv2.bitwise_and(o, mask)”,將原始圖像o與實(shí)心輪廓mask進(jìn)行“按位與”運(yùn)算,就得到了原始圖像的前景對(duì)象。
1、Photoshop打開(kāi)圖片。
2、Photoshop打開(kāi)圖片后,點(diǎn)擊工具欄中的查找邊緣-風(fēng)格化。
3、點(diǎn)擊風(fēng)格化之后,選擇查找邊緣。
4、點(diǎn)擊查找邊緣后,就可以把輪廓提取出來(lái)了。
5、Ctrl+L調(diào)整色階。
6、然后進(jìn)入通道頁(yè)面,按住Ctrl鍵點(diǎn)擊任意一個(gè)通道,把輪廓載入選區(qū)。
7、返回圖層頁(yè)面。
8、Ctrl+Shift+I反選。
9、反選后,Ctrl+J就可以把輪廓摳下來(lái)了。
1、查找輪廓(find_contours)
measure模塊中的find_contours()函數(shù),可用來(lái)檢測(cè)二值圖像的邊緣輪廓。
函數(shù)原型為:
skimage.measure.find_contours(array,?level)
array: 一個(gè)二值數(shù)組圖像
level: 在圖像中查找輪廓的級(jí)別值
返回輪廓列表集合,可用for循環(huán)取出每一條輪廓。
例1:
import?numpy?as?np
import?matplotlib.pyplot?as?plt
from?skimage?import?measure,draw?
#生成二值測(cè)試圖像
img=np.zeros([100,100])
img[20:40,60:80]=1??#矩形
rr,cc=draw.circle(60,60,10)??#小圓
rr1,cc1=draw.circle(20,30,15)?#大圓
img[rr,cc]=1
img[rr1,cc1]=1
#檢測(cè)所有圖形的輪廓
contours?=?measure.find_contours(img,?0.5)
#繪制輪廓
fig,?(ax0,ax1)?=?plt.subplots(1,2,figsize=(8,8))
ax0.imshow(img,plt.cm.gray)
ax1.imshow(img,plt.cm.gray)
for?n,?contour?in?enumerate(contours):
ax1.plot(contour[:,?1],?contour[:,?0],?linewidth=2)
ax1.axis('image')
ax1.set_xticks([])
ax1.set_yticks([])
plt.show()
結(jié)果如下:不同的輪廓用不同的顏色顯示
牙叔教程 簡(jiǎn)單易懂
查找和已有圖片相似的輪廓
查找輪廓結(jié)果
原圖
要查找的圖片
8.8.16-0
autojs自帶opencv3.4.3
主要使用matchShapes, 比較兩個(gè)形狀的相似度,
第一個(gè)參數(shù)是待匹配的物體1,第二個(gè)是待匹配的物體2,
最重要的是一定要可視化, opencv支持畫(huà)任何圖形, 也支持文字
百度了一下, 說(shuō)是matchShapes參數(shù)傳錯(cuò), 正常返回值最大是1, 最小是0,
把matchShapes參數(shù)改一下, 相似度調(diào)整為0.03
如果還是有多個(gè)輪廓, 我們可以繼續(xù)添加維度, 比如輪廓的面積, 長(zhǎng)寬比, 顏色, 寬高,
更復(fù)雜一點(diǎn)可以配合其他更明顯的輪廓的相對(duì)位置
讀取圖片-- 高斯模糊-- 灰度-- 二值化-- findContours--
matchShapes--minAreaRect-- contourArea-- drawContours
部分內(nèi)容來(lái)自網(wǎng)絡(luò)
本教程僅用于學(xué)習(xí), 禁止用于其他用途
分享題目:go語(yǔ)言圖片查找輪廓 golang圖片識(shí)別
轉(zhuǎn)載源于:http://m.rwnh.cn/article12/hiicdc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、、網(wǎng)站策劃、搜索引擎優(yōu)化、移動(dòng)網(wǎng)站建設(shè)、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容