当前位置: 首页 > 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.dtcms.com/a/243409.html

相关文章:

  • Java-43 深入浅出 Nginx - 基本配置方式 nginx.conf Events块 HTTP块 反向代理 负载均衡
  • 永磁同步电机无速度算法--基于稳态卡尔曼滤波器SSEKF的滑模观测器
  • 实战使用docker compose 搭建 Redis 主从复制集群
  • 【docker】docker registry搭建私有镜像仓库
  • Linux 杀进程指令详解:`kill -9 PID` 和 `kill -15 PID` 有什么区别?
  • 云计算迁移策略:分步框架与优势
  • 开源生态新势能: 驱动国产 DevSecOps 与 AI 工程新进展
  • Vim鼠标右键复制问题解决方法
  • 自定义鼠标效果 - 浏览器扩展使用教程
  • (新手友好)MySQL学习笔记(8):存储过程,自定义函数,游标
  • ubuntuserver24.04版本:redis编译安装时出现工具、依赖库问题解决方法
  • 大模型笔记_模型微调
  • 模拟IC设计提高系列5-温度角与蒙特卡洛仿真
  • AI任务相关解决方案8-基于卷积神经网络(CNN)和反向传播神经网络(BPNN)的数字图像水印改进算法
  • MCP使用
  • Leetcode20 (有效的括号)
  • 【慧游鲁博】【11】后端 · Spring Boot 集成 Python 配置
  • 统计学(第8版)——方差分析Ⅰ(考试用)
  • ES Modules 与 CommonJS 的核心区别详解
  • 台湾住宅IP哪家好,怎么找到靠谱的海外住宅IP代理商
  • Web 架构之微服务拆分原则与反模式
  • Windows网络配置避坑指南
  • 【android bluetooth 框架分析 04】【bt-framework 层详解 2】【如何配置和启动蓝牙profile服务】
  • python里的PDFMiner.six 库介绍
  • 菌菇食用攻略:从营养解析到安全指南,解锁科学食菌
  • 【全志V821_FoxPi】2-2 切换为spi nand方案启动
  • Context7 Mcp Quickstart
  • Kubernetes服务部署——RabbitMQ(集群版)
  • CMake指令: add_sub_directory以及工作流程
  • 前端实习校验函数汇总(未完成)