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

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

Python OpenCV實現(xiàn)測量圖片物體寬度

瀏覽:97日期:2022-07-24 11:06:34

一、 題目描述

測量所給圖片的高度,即上下邊緣間的距離。

Python OpenCV實現(xiàn)測量圖片物體寬度

思路:

將圖片進行閾值操作得到二值化圖片。 截取只包含上下邊框的部分,以便于后續(xù)的輪廓提取 輪廓檢測 得到結果

二、 實現(xiàn)過程

1.用于給圖片添加中文字符

#用于給圖片添加中文字符def ImgText_CN(img, text, left, top, textColor=(0, 255, 0), textSize=20): if (isinstance(img, np.ndarray)): #判斷是否為OpenCV圖片類型 img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) draw = ImageDraw.Draw(img) fontText = ImageFont.truetype(r’C:WindowsFontssimsun.ttc’, textSize, encoding='utf-8') ##中文字體 draw.text((left, top), text, textColor, font=fontText) #寫文字 return cv2.cvtColor(np.asarray(img), cv2.COLOR_RGB2BGR)

2.實現(xiàn)圖片反色功能

#實現(xiàn)圖片反色功能def PointInvert(img): height, width = img.shape #獲取圖片尺寸 for i in range(height): for j in range(width): pi = img[i, j] img[i, j] = 255 - pi return img

3.邊緣檢測

# canny邊緣檢測edges = cv2.Canny(th, 30, 70) res=PointInvert(edges) #顏色反轉(zhuǎn)#顯示圖片cv2.imshow(’original’, th) #顯示二值化后的圖,主題為白色,背景為黑色 更加容易找出輪廓key = cv2.waitKey(0)if key==27: #按esc鍵時,關閉所有窗口 print(key) cv2.destroyAllWindows()

4.輪廓操作

contours, hierarchy = cv2.findContours(th, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) #得到輪廓cnt = contours[0]#取出輪廓x, y, w, h = cv2.boundingRect(cnt) #用一個矩形將輪廓包圍img_gray = cv2.cvtColor(res, cv2.COLOR_GRAY2BGR)#將灰度轉(zhuǎn)化為彩色圖片方便畫圖cv2.line(img_gray, (x, y), (x + w, y), (0,0,255), 2, 5) #上邊緣cv2.line(img_gray, (x, y+h), (x + w, y+h), (0, 0, 255), 2, 5) #下邊緣img1[80:230, 90:230] = img_gray #用帶有上下輪廓的圖替換掉原圖的對應部分

5.顯示圖片

res1=ImgText_CN(img1, ’寬度%d’%h, 25, 25, textColor=(0, 255, 0), textSize=30) #繪制文字#顯示圖片 cv2.imshow(’original’, res1)key = cv2.waitKey(0)if key==27: #按esc鍵時,關閉所有窗口 print(key) cv2.destroyAllWindows()

6.完整代碼

import cv2import numpy as npfrom PIL import Image, ImageDraw, ImageFont#用于給圖片添加中文字符def ImgText_CN(img, text, left, top, textColor=(0, 255, 0), textSize=20): if (isinstance(img, np.ndarray)): #判斷是否為OpenCV圖片類型 img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) draw = ImageDraw.Draw(img) fontText = ImageFont.truetype(r’C:WindowsFontssimsun.ttc’, textSize, encoding='utf-8') ##中文字體 draw.text((left, top), text, textColor, font=fontText) #寫文字 return cv2.cvtColor(np.asarray(img), cv2.COLOR_RGB2BGR)#實現(xiàn)圖片反色功能def PointInvert(img): height, width = img.shape #獲取圖片尺寸 for i in range(height): for j in range(width): pi = img[i, j] img[i, j] = 255 - pi return imgimg=cv2.imread('gongjian1.bmp',0)#加載彩色圖img1=cv2.imread('gongjian1.bmp',1)#加載灰度圖recimg = img[80:230, 90:230] #截取需要的部分img2 = img1[80:230, 90:230] #截取需要的部分ret, th = cv2.threshold(recimg, 90, 255, cv2.THRESH_BINARY) #閾值操作二值化# canny邊緣檢測edges = cv2.Canny(th, 30, 70) res=PointInvert(edges) #顏色反轉(zhuǎn)#顯示圖片cv2.imshow(’original’, th) #顯示二值化后的圖,主題為白色,背景為黑色 更加容易找出輪廓key = cv2.waitKey(0)if key==27: #按esc鍵時,關閉所有窗口 print(key) cv2.destroyAllWindows() contours, hierarchy = cv2.findContours(th, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) #得到輪廓cnt = contours[0]#取出輪廓x, y, w, h = cv2.boundingRect(cnt) #用一個矩形將輪廓包圍img_gray = cv2.cvtColor(res, cv2.COLOR_GRAY2BGR)#將灰度轉(zhuǎn)化為彩色圖片方便畫圖cv2.line(img_gray, (x, y), (x + w, y), (0,0,255), 2, 5) #上邊緣cv2.line(img_gray, (x, y+h), (x + w, y+h), (0, 0, 255), 2, 5) #下邊緣img1[80:230, 90:230] = img_gray #用帶有上下輪廓的圖替換掉原圖的對應部分res1=ImgText_CN(img1, ’寬度%d’%h, 25, 25, textColor=(0, 255, 0), textSize=30) #繪制文字#顯示圖片 cv2.imshow(’original’, res1)key = cv2.waitKey(0)if key==27: #按esc鍵時,關閉所有窗口 print(key) cv2.destroyAllWindows()

三、 運行結果(效果)

Python OpenCV實現(xiàn)測量圖片物體寬度

Python OpenCV實現(xiàn)測量圖片物體寬度

四、 問題及解決方法

紅色輪廓沒有顯示,解決方案:將灰度圖轉(zhuǎn)化為彩色圖

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

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 碳纤维复合材料制品生产定制工厂订制厂家-凯夫拉凯芙拉碳纤维手机壳套-碳纤维雪茄盒外壳套-深圳市润大世纪新材料科技有限公司 | RFID电子标签厂家-上海尼太普电子有限公司 | 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库 | STRO|DTRO-STRO反渗透膜(科普)_碟滤 | 道达尔润滑油-食品级润滑油-道达尔导热油-合成导热油,深圳道达尔代理商合-深圳浩方正大官网 | 假肢-假肢价格-假肢厂家-河南假肢-郑州市力康假肢矫形器有限公司 | 采暖炉_取暖炉_生物质颗粒锅炉_颗粒壁炉_厂家加盟批发_烟台蓝澳采暖设备有限公司 | 河南不锈钢水箱_地埋水箱_镀锌板水箱_消防水箱厂家-河南联固供水设备有限公司 | 对辊式破碎机-对辊制砂机-双辊-双齿辊破碎机-巩义市裕顺机械制造有限公司 | 自恢复保险丝_贴片保险丝_力特保险丝_Littelfuse_可恢复保险丝供应商-秦晋电子 | 兰州牛肉面加盟,兰州牛肉拉面加盟-京穆兰牛肉面| 除尘布袋_液体过滤袋_针刺毡滤料-杭州辉龙过滤技术有限公司 | 真空搅拌机-行星搅拌机-双行星动力混合机-广州市番禺区源创化工设备厂 | 悬浮拼装地板_篮球场木地板翻新_运动木地板价格-上海越禾运动地板厂家 | 深圳美安可自动化设备有限公司,喷码机,定制喷码机,二维码喷码机,深圳喷码机,纸箱喷码机,东莞喷码机 UV喷码机,日期喷码机,鸡蛋喷码机,管芯喷码机,管内壁喷码机,喷码机厂家 | 客服外包专业服务商_客服外包中心_网萌科技 | 低压载波电能表-单相导轨式电能表-华邦电力科技股份有限公司-智能物联网综合管理平台 | 北京租车公司_汽车/客车/班车/大巴车租赁_商务会议/展会用车/旅游大巴出租_北京桐顺创业租车公司 | 全自动在线分板机_铣刀式在线分板机_曲线分板机_PCB分板机-东莞市亿协自动化设备有限公司 | 无线对讲-无线对讲系统解决方案-重庆畅博通信 | 缠绕机|缠绕膜包装机|缠绕包装机-上海晏陵智能设备有限公司 | 澳威全屋定制官网|极简衣柜十大品牌|衣柜加盟代理|全屋定制招商 百度爱采购运营研究社社群-店铺托管-爱采购代运营-良言多米网络公司 | 开业庆典_舞龙舞狮_乔迁奠基仪式_开工仪式-神挚龙狮鼓乐文化传媒 | 吊篮式|移动式冷热冲击试验箱-二槽冷热冲击试验箱-广东科宝 | 连续油炸机,全自动油炸机,花生米油炸机-烟台茂源食品机械制造有限公司 | 钢格栅板_钢格板网_格栅板-做专业的热镀锌钢格栅板厂家-安平县迎瑞丝网制造有限公司 | 意大利Frascold/富士豪压缩机_富士豪半封闭压缩机_富士豪活塞压缩机_富士豪螺杆压缩机 | 宽带办理,电信宽带,移动宽带,联通宽带,电信宽带办理,移动宽带办理,联通宽带办理 | 幂简集成 - 品种超全的API接口平台, 一站搜索、试用、集成国内外API接口 | RTO换向阀_VOC高温阀门_加热炉切断阀_双偏心软密封蝶阀_煤气蝶阀_提升阀-湖北霍科德阀门有限公司 | 首页|专注深圳注册公司,代理记账报税,注册商标代理,工商变更,企业400电话等企业一站式服务-慧用心 | 闪蒸干燥机-喷雾干燥机-带式干燥机-桨叶干燥机-[常州佳一干燥设备] | 紧急泄压人孔_防爆阻火器_阻火呼吸阀[河北宏泽石化] | 120kv/2mA直流高压发生器-60kv/2mA-30kva/50kv工频耐压试验装置-旭明电工 | 水性漆|墙面漆|木器家具漆|水漆涂料_晨阳水漆官网 | 超细粉碎机|超微气流磨|气流分级机|粉体改性设备|超微粉碎设备-山东埃尔派粉碎机厂家 | 不锈钢水管-不锈钢燃气管-卫生级不锈钢管件-不锈钢食品级水管-广东双兴新材料集团有限公司 | 动库网动库商城-体育用品专卖店:羽毛球,乒乓球拍,网球,户外装备,运动鞋,运动包,运动服饰专卖店-正品运动品网上商城动库商城网 - 动库商城 | 组织研磨机-高通量组织研磨仪-实验室多样品组织研磨机-东方天净 传递窗_超净|洁净工作台_高效过滤器-传递窗厂家广州梓净公司 | 步入式高低温测试箱|海向仪器| 深圳市宏康仪器科技有限公司-模拟高空低压试验箱-高温防爆试验箱-温控短路试验箱【官网】 |