当前位置: 首页 > news >正文

机器视觉开发-边缘提取

        边缘提取一般包括多个步骤,首先需要对图像进行二值化处理,把需要提取边缘的对象反转为黑色,再提取边缘信息。

1.显示图片窗口

import cv2# 读取本相对路径下的1.png文件
image = cv2.imread ("1.png")
# 将image对应图像在图像窗口显示出来
cv2.imshow('1',image)
# waitKey使窗口保持静态直到用户按下一个键
cv2.waitKey(0)

效果

 

2.获取二值灰度图

import cv2# 读取本相对路径下的1.png文件
image = cv2.imread ("1.png")
# 对图像进行阈值分割,阈值设定为80,得到二值化灰度图
ret,image1 = cv2.threshold(image,80,255,cv2.THRESH_BINARY)
cv2.imshow('grayscale',image1)# waitKey使窗口保持静态直到用户按下一个键
cv2.waitKey(0)

效果

 

3.对二值图进行反向

import cv2# 读取本相对路径下的1.png文件
image = cv2.imread ("1.png")
# 对图像进行阈值分割,阈值设定为80,得到二值化灰度图
ret,image1 = cv2.threshold(image,80,255,cv2.THRESH_BINARY)
image2 = image1.copy()		# 复制图片
for i in range(0,image1.shape[0]):	#image.shape表示图像的尺寸和通道信息(高,宽,通道)for j in range(0,image1.shape[1]):image2[i,j]= 255 - image1[i,j]cv2.imshow('colorReverse',image2)# waitKey使窗口保持静态直到用户按下一个键
cv2.waitKey(0)

效果 

4.边缘提取

import cv2# 读取本相对路径下的1.png文件
image = cv2.imread ("1.png")
# 对图像进行阈值分割,阈值设定为80,得到二值化灰度图
ret,image1 = cv2.threshold(image,80,255,cv2.THRESH_BINARY)
image2 = image1.copy()		# 复制图片
for i in range(0,image1.shape[0]):	#image.shape表示图像的尺寸和通道信息(高,宽,通道)for j in range(0,image1.shape[1]):image2[i,j]= 255 - image1[i,j]# 边缘提取
img = cv2.cvtColor(image2,cv2.COLOR_BGR2GRAY)
canny_img_one = cv2.Canny(img,300,150)
canny_img_two = canny_img_one.copy()	# 复制图片
for i in range(0,canny_img_one.shape[0]):	#image.shape表示图像的尺寸和通道信息(高,宽,通道)for j in range(0,canny_img_one.shape[1]):canny_img_two[i,j]= 255 - canny_img_one[i,j]
cv2.imshow('edge',canny_img_two)# waitKey使窗口保持静态直到用户按下一个键
cv2.waitKey(0)

 效果 

 

http://www.xdnf.cn/news/975511.html

相关文章:

  • Python爬虫(54)Python数据治理全攻略:从爬虫清洗到NLP情感分析的实战演进
  • 2025-6-9Vue3快速上手
  • ubuntu22 arm 编译安装input leap
  • 数据的聚合
  • 审计效率升级!Word一键批量给数字添加千位分隔符
  • 传统机器学习与大模型 + Prompt 的对比示例
  • eureka如何绕过 LVS 的虚拟 IP(VIP),直接注册服务实例的本机真实 IP
  • SpringMVC异步处理Servlet
  • Wyn 商业智能与 3D 大屏的深度融合应用
  • 在ARM 架构的 Mac 上 更新Navicat到17后连接Oracle时报错:未加载 Oracle 库。
  • 高频面试之6Hive
  • 机器学习算法——集成学习
  • 电路图识图基础知识-变频器控制电动机系统解析(二十四)
  • 渗透测试PortSwigger Labs:遭遇html编码和转义符的反射型XSS
  • uniapp 云打包 iOS 应用上传到 app store 商店的过程
  • ZZU-ARM汇编语言实验 34
  • 【Rust UDP编程】rust udp编程方法解析与应用实战
  • uni-app bitmap.load() 返回 code=-100
  • XSP30是一款2~3节串联锂电池/锂离子电池升降压充电管理IC
  • Snipaste:轻量级截图,高效编辑
  • Spring中@Value注解:原理、加载顺序与实战指南
  • Springboot项目的目录结构
  • 西门子 SINAMICS S200伺服,重塑汽车焊接工艺新标准
  • 技术革新,EtherCAT转CAN网关,新能源汽车电池产线再升级
  • 汽车租赁小程序开发指南
  • Spark提交流程
  • SQL 注入:iBatis与修复
  • Charles里怎么进行断点调试
  • TripGenie:畅游济南旅行规划助手:团队工作纪实(十四)
  • 附加模块--Qt SQL模块功能及架构解析