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