电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Python Opencv輪廓常用操作代碼實例解析

瀏覽:32日期:2022-07-12 16:51:58

1.顏色空間轉換

使用cv2.cvtColor(input_image ,flag),flag為轉換類型

常用的轉換類型有:

BGR和灰度圖的轉換使用 cv2.COLOR_BGR2GRAY BGR和HSV的轉換使用 cv2.COLOR_BGR2HSV

img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

2.二值化

ret, dst = cv2.threshold(src, thresh, maxval, type) src:表示的是圖片源(灰度圖) thresh:表示的是閾值(起始值) maxval:表示的是最大值 type:表示的是這里劃分的時候使用的是什么類型的算法,常用值為0(cv2.THRESH_BINARY)

返回值

ret:指定的thresh

dst: 目標圖像

Python Opencv輪廓常用操作代碼實例解析

ret, dst = cv2.threshold(img_gray, 200, 255, cv2.THRESH_BINARY)

3.查找并繪制輪廓

3.1 cv2.findContours(image, mode, method[, offset])

概述:

尋找一個二值圖像的輪廓。注意黑色表示背景,白色表示物體,即在黑色背景里尋找白色物體的輪廓

參數:

image: 8位單通道圖像。非零像素值視為1,所以圖像視作二值圖像 mode: 輪廓檢索的方式 cv2.RETR_EXTERNAL: 只檢索外部輪廓 cv2.RETR_LIST: 檢測所有輪廓且不建立層次結構 cv2.RETR_CCOMP: 檢測所有輪廓,建立兩級層次結構。上面的一層為外邊界,里面的一層為內孔的邊界信息。如果內孔內還有一個連通物體,這個物體的邊界也在頂層。 cv2.RETR_TREE: 檢測所有輪廓,建立完整的層次結構 method: 輪廓近似的方法 cv2.CHAIN_APPROX_NONE: 存儲所有的輪廓點 cv2.CHAIN_APPROX_SIMPLE: 壓縮水平,垂直和對角線段,只留下端點。 例如矩形輪廓可以用4個點編碼 cv2.CHAIN_APPROX_TC89_L1,cv2.CHAIN_APPROX_TC89_KCOS:使用Teh-Chini chain近似算法 offset:(可選參數)輪廓點的偏移量,格式為tuple,如(-10,10)表示輪廓點沿X負方向偏移10個像素點,沿Y正方向偏移10個像素點

返回值:

contours: 輪廓點。列表格式,每一個元素為一個3維數組(其形狀為(n,1,2),其中n表示輪廓點個數,2表示像素點坐標),表示一個輪廓 hierarchy: 輪廓間的層次關系,為三維數組,形狀為(1,n,4),其中n表示輪廓總個數,4指的是用4個數表示各輪廓間的相互關系。第一個數表示同級輪廓的下一個輪廓編號,第二個數表示同級輪廓的上一個輪廓的編號,第三個數表示該輪廓下一級輪廓的編號,第四個數表示該輪廓的上一級輪廓的編號

補充: 若想得到輪廓點的集合的列表,可使用

cnt = np.squeeze(contours[0])

3.2 cv2.drawContours(image, contours, contourIdx, color[, thickness[, lineType[, hierarchy[, maxLevel[, offset]]]])

參數:

image: 需要繪制輪廓的目標圖像,注意會改變原圖 contours: 輪廓點,上述函數cv2.findContours()的第一個返回值 contourIdx: 輪廓的索引,表示繪制第幾個輪廓,-1表示繪制所有的輪廓 color: 繪制輪廓的顏色 thickness:(可選參數)輪廓線的寬度,-1表示填充 lineType:(可選參數)輪廓線型,包括cv2.LINE_4,cv2.LINE_8(默認),cv2.LINE_AA,分別表示4鄰域線,8領域線,抗鋸齒線(可以更好地顯示曲線) hierarchy:(可選參數)層級結構,上述函數cv2.findContours()的第二個返回值,配合maxLevel參數使用 maxLevel:(可選參數)等于0表示只繪制指定的輪廓,等于1表示繪制指定輪廓及其下一級子輪廓,等于2表示繪制指定輪廓及其所有子輪廓 offset:(可選參數)輪廓點的偏移量

import cv2img = cv2.imread(’D:/2.jpg’,1)

img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)ret, dst = cv2.threshold(img_gray, 200, 255, cv2.THRESH_BINARY)

contours,hierarchy = cv2.findContours(dst, cv2.RETR_LIST, cv2.CHAIN_APPROX_NONE)cv2.drawContours(img, contours, -1, (0, 255, 0), 3)

cv2.imshow(’img’,img)cv2.waitKey(0)

4.點與輪廓位置關系

此功能可查找圖像中的點與輪廓之間的最短距離。當點在輪廓外時返回負值,當點在內部時返回正值,如果點在輪廓上則返回零

dist = cv2.pointPolygonTest(cnt, (100, 100), True)

檢查(100,100)與輪廓(cnt)的距離

在函數中,第二個參數需要tuple類型;第三個參數是measureDist。 如果為True,則查找距離. 如果為False,則查找該點是在內部還是外部或在輪廓上(它分別返回+1,-1,0)

如果不需要到距離,請確保第三個參數為False,因為這是一個耗時的過程。因此,將其設為False可提供2-3倍的加速

5.直線擬合fitline函數

output = cv2.fitLine(InputArray points, distType, param, reps, aeps)

參數:

InputArray Points: 待擬合的直線的集合,必須是矩陣形式(如numpy.array) distType: 距離類型。fitline為距離最小化函數,擬合直線時,要使輸入點到擬合直線的距離和最小化。這里的距離的類型有以下幾種: cv2.DIST_USER : User defined distance cv2.DIST_L1: distance = |x1-x2| + |y1-y2| cv2.DIST_L2: 歐式距離,此時與最小二乘法相同 cv2.DIST_C: distance = max(|x1-x2|,|y1-y2|) cv2.DIST_L12: L1-L2 metric: distance = 2(sqrt(1+x*x/2) - 1)) cv2.DIST_FAIR cv2.DIST_WELSCH cv2.DIST_HUBER param: 距離參數,跟所選的距離類型有關,值可以設置為0 reps,aeps: 第5/6個參數用于表示擬合直線所需要的徑向和角度精度,通常情況下兩個值均被設定為1e-2

返回值:

output:對于二維直線,輸出output為4維,前兩維代表擬合出的直線的方向,后兩位代表直線上的一點。(即通常說的點斜式直線)

loc = np.array(loc)output = cv2.fitLine(loc, cv2.DIST_L2, 0, 0.01, 0.01)k = output[1] / output[0]b = output[3] - k * output[2]#k[key]報錯?

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 芝麻黑-芝麻黑石材厂家-永峰石业| 济南网站策划设计_自适应网站制作_H5企业网站搭建_济南外贸网站制作公司_锐尚 | 粘度计,数显粘度计,指针旋转粘度计 | 酒吧霸屏软件_酒吧霸屏系统,酒吧微上墙,夜场霸屏软件,酒吧点歌软件,酒吧互动游戏,酒吧大屏幕软件系统下载 | 电气控制系统集成商-PLC控制柜变频控制柜-非标自动化定制-电气控制柜成套-NIDEC CT变频器-威肯自动化控制 | 陕西华春网络科技股份有限公司| 扫地车厂家-山西洗地机-太原电动扫地车「大同朔州吕梁晋中忻州长治晋城洗地机」山西锦力环保科技有限公司 | ET3000双钳形接地电阻测试仪_ZSR10A直流_SXJS-IV智能_SX-9000全自动油介质损耗测试仪-上海康登 | 带式过滤机厂家_价格_型号规格参数-江西核威环保科技有限公司 | 碳纤维布-植筋胶-灌缝胶-固特嘉加固材料公司 | 超声骨密度仪-骨密度检测仪-经颅多普勒-tcd仪_南京科进实业有限公司 | 恒温槽_恒温水槽_恒温水浴槽-上海方瑞仪器有限公司 | 对辊破碎机-液压双辊式,强力双齿辊,四辊破碎机价格_巩义市金联机械设备生产厂家 | TYPE-C厂家|TYPE-C接口|TYPE-C防水母座|TYPE-C贴片-深圳步步精 | 哔咔漫画网页版在线_下载入口访问指引| arch电源_SINPRO_开关电源_模块电源_医疗电源-东佑源 | 密集架-密集柜厂家-智能档案密集架-自动选层柜订做-河北风顺金属制品有限公司 | 电销卡_北京电销卡_包月电话卡-豪付网络 | 好杂志网-首页| 中山市派格家具有限公司【官网】| 定制奶茶纸杯_定制豆浆杯_广东纸杯厂_[绿保佳]一家专业生产纸杯碗的厂家 | 磁力链接搜索神器_BT磁力狗_CILIMAO磁力猫_高效磁力搜索引擎2024 | 盘扣式脚手架-附着式升降脚手架-移动脚手架,专ye承包服务商 - 苏州安踏脚手架工程有限公司 | 二维运动混料机,加热型混料机,干粉混料机-南京腾阳干燥设备厂 | 玻璃钢格栅盖板|玻璃钢盖板|玻璃钢格栅板|树篦子-长沙川皖玻璃钢制品有限公司 | 双能x射线骨密度检测仪_dxa骨密度仪_双能x线骨密度仪_品牌厂家【品源医疗】 | 广州昊至泉水上乐园设备有限公司 | 蒜肠网-动漫,二次元,COSPLAY,漫展以及收藏型模型,手办,玩具的新媒体.(原变形金刚变迷TF圈) | EFM 022静电场测试仪-套帽式风量计-静电平板监测器-上海民仪电子有限公司 | 铝箔袋,铝箔袋厂家,东莞铝箔袋,防静电铝箔袋,防静电屏蔽袋,防静电真空袋,真空袋-东莞铭晋让您的产品与众不同 | 上海刑事律师|刑事辩护律师|专业刑事犯罪辩护律师免费咨询-[尤辰荣]金牌上海刑事律师团队 | STRO|DTRO-STRO反渗透膜(科普)_碟滤| 振动筛,震动筛,圆形振动筛,振动筛价格,振动筛厂家-新乡巨宝机电 蒸汽热收缩机_蒸汽发生器_塑封机_包膜机_封切收缩机_热收缩包装机_真空机_全自动打包机_捆扎机_封箱机-东莞市中堡智能科技有限公司 | 校服厂家,英伦校服定做工厂,园服生产定制厂商-东莞市艾咪天使校服 | 珠海白蚁防治_珠海灭鼠_珠海杀虫灭鼠_珠海灭蟑螂_珠海酒店消杀_珠海工厂杀虫灭鼠_立净虫控防治服务有限公司 | 间苯二酚,间苯二酚厂家-淄博双和化工 | 法兰连接型电磁流量计-蒸汽孔板节流装置流量计-北京凯安达仪器仪表有限公司 | 油冷式_微型_TDY电动滚筒_外装_外置式电动滚筒厂家-淄博秉泓机械有限公司 | 电地暖-电采暖-发热膜-石墨烯电热膜品牌加盟-暖季地暖厂家 | 液氮罐_液氮容器_自增压液氮罐-北京君方科仪科技发展有限公司 | PSI渗透压仪,TPS酸度计,美国CHAI PCR仪,渗透压仪厂家_价格,微生物快速检测仪-华泰和合(北京)商贸有限公司 |