一.查找輪廓
站在用戶(hù)的角度思考問(wèn)題,與客戶(hù)深入溝通,找到漯河網(wǎng)站設(shè)計(jì)與漯河網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶(hù)體驗(yàn)好的作品,建站類(lèi)型包括:成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名與空間、虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋漯河地區(qū)。
cv2.findContours()
[image,] contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
輪廓檢索方式:
輪廓近似方法:
二.繪制輪廓
cv2.drawContours()
cv2.drawContours(img, contours, -1, (0, 0, 255), 2)?
opencv-python中的cv2.namedWindow(),其作用如下:
使用cv2.imshow()的時(shí)候,如果圖片太大,會(huì)顯示不全并且無(wú)法調(diào)整。
因此在cv2.imshow()的前面加上這樣的一個(gè)語(yǔ)句:cv2.namedWindow('image', 0),得到的圖像框就可以自行調(diào)整大小,可以拉伸進(jìn)行自由調(diào)整。
擴(kuò)展資料:
用法:cv2.namedWindow('窗口標(biāo)題',默認(rèn)參數(shù))
默認(rèn)參數(shù):
cv2.WINDOW_AUTOSIZE+cv2.WINDOW_KEEPRATIO+cv2.WINDOW_GUI_EXPANDED)
參數(shù):
(1)cv2.WINDOW_NORMAL:窗口大小可改變。
(2)cv2.WINDOW_AUTOSIZE:窗口大小不可改變。
(3)cv2.WINDOW_FREERATIO:自適應(yīng)比例。
(4)cv2.WINDOW_KEEPRATIO:保持比例。
注意,現(xiàn)在OpenCV for Python就是通過(guò)NumPy進(jìn)行綁定的。所以在使用時(shí)必須掌握一些NumPy的相關(guān)知識(shí)!
圖像就是一個(gè)矩陣,在OpenCV for Python中,圖像就是NumPy中的數(shù)組!
如果讀取圖像首先要導(dǎo)入OpenCV包,方法為:
import?cv2
emptyImage3=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)??
#emptyImage3[...]=0
源碼:
#!/usr/bin/env python
#coding=utf-8
__author__ = 'zhangdebin'
import cv2
if __name__ == '__main__':
#image read
image = cv2.imread("/Users/zhangdebin/Documents/checkFace2.jpg")
image0 = cv2.imread("/Users/zhangdebin/Documents/checkFace2.jpg",0)
image1 = cv2.imread("/Users/zhangdebin/Documents/checkFace2.jpg",1)
print image
cv2.namedWindow("the window")
cv2.imshow("the window", image)
cv2.namedWindow("the window0")
cv2.imshow("the window0", image0)
cv2.namedWindow("the window1")
cv2.imshow("the window1", image1)
cv2.waitKey(0)
其中,cv2是我在mac系統(tǒng)中安裝的python-opencv包,具體安裝方法在另一篇博文有介紹,
cv2.imread和matlab中的imread函數(shù)很像,其中源碼有一個(gè)參數(shù)imread(…)
imread(filename[, flags]) - retval,falgs經(jīng)測(cè)試,當(dāng)缺省時(shí)為原圖像,當(dāng)falgs=0時(shí),因?yàn)橹蛔x取第一個(gè)字節(jié),彩色圖像讀取為灰度圖像,當(dāng)falgs逐漸增加,向7(0~7,8位)靠攏時(shí),字節(jié)數(shù)增加,圖像色彩越來(lái)越靠近原圖像,當(dāng)超過(guò)8位,比如8,變?yōu)椋?-8=0),又是只取一個(gè)字節(jié),視覺(jué)效果為灰度圖,同理,15位為原圖,有興趣的朋友可以自己測(cè)試下,具體效果見(jiàn)下圖:
同時(shí),cv2中自帶了falgs =cv2.CV_LOAD_IMAGE_GRAYSCALE或
cv2.CV_LOAD_IMAGE_COLOR,其實(shí)這兩個(gè)參數(shù)和上面是一樣的,0為grayimage,但是color=1,而且顯示時(shí)候也不是彩色的,這和matlab的imread有很大區(qū)別
grayimage = cv2.imread('/Users/zhangdebin/Documents/checkoutFace2.jpeg',cv2.CV_LOAD_IMAGE_GRAYSCALE);
colorimage = cv2.imread('/Users/zhangdebin/Documents/checkoutFace2.jpeg', cv2.CV_LOAD_IMAGE_COLOR)
print 'cv2.grayscale:'
print cv2.CV_LOAD_IMAGE_GRAYSCALE
print 'colr:'
print cv2.CV_LOAD_IMAGE_COLOR
cv2.grayscale:
colr:
1