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

1-8 图像腐蚀 opencv树莓派4B 入门系列笔记

目录

一、提前准备

二、代码详解

kernel=np.ones((2,2),np.uint8)

_, binary_image = cv2.threshold(image, 127, 255, cv2.THRESH_BINARY)

eroded_image=cv2.erode(binary_image,kernel,iterations=1)

eroded_image2=cv2.erode(image2,kernel,iterations=1)

三、运行现象

四、完整代码

五、完整代码贴出


一、提前准备

        1、树莓派4B 及 64位系统

        2、提前安装opencv库 以及 numpy库

        3、保存一张图片

二、代码详解

1、读取灰度图以及彩色图

# coding: utf-8 
# 图像腐蚀的目的:1、去除图像中微小物体 2、分离较近的俩个物体 3、减少一部分信息import cv2
import numpy as np#从指定目录读取一张图片
image=cv2.imread('/home/raspberry4B/Pictures/MD.jpg',0)
image2=cv2.imread('/home/raspberry4B/Pictures/MD.jpg',-1)

2、图像腐蚀操作

#定义腐蚀操作的结构元素
kernel=np.ones((2,2),np.uint8)#图像二值化处理:使用127作为阈值  
_, binary_image = cv2.threshold(image, 127, 255, cv2.THRESH_BINARY)  #进行图像腐蚀操作(对二值图进行腐蚀),iterations表示腐蚀次数
eroded_image=cv2.erode(binary_image,kernel,iterations=1)
eroded_image2=cv2.erode(image2,kernel,iterations=1)

kernel=np.ones((2,2),np.uint8)

  • 功能: 定义腐蚀操作的结构元素。
  • 参数:
    • (2,2): 定义结构元素的大小,这里为2x2的矩阵。
    • np.uint8: 数据类型,表示无符号8位整数。

_, binary_image = cv2.threshold(image, 127, 255, cv2.THRESH_BINARY)

  • 功能: 将灰度图像进行二值化处理,生成二值图像。
  • 参数:
    • image: 输入的灰度图像。
    • 127: 阈值。小于此值的像素设置为0,大于等于此值的像素设置为最大值(255)。
    • 255: 最大值。大于等于阈值的像素设置为该值。
    • cv2.THRESH_BINARY: 二值化模式,即将像素值二分为0和255两种。

eroded_image=cv2.erode(binary_image,kernel,iterations=1)

  • 功能: 对二值图像进行腐蚀操作。
  • 参数:
    • binary_image: 输入的二值图像。
    • kernel: 进行腐蚀操作的结构元素。
    • iterations=1: 腐蚀操作的次数,表示重复腐蚀操作一次。

eroded_image2=cv2.erode(image2,kernel,iterations=1)

  • 功能: 对原始格式的图像进行腐蚀操作。
  • 参数:
    • image2: 输入的图像。
    • kernel: 进行腐蚀操作的结构元素。
    • iterations=1: 腐蚀操作的次数。

3、图像显示

while True:#显示原始图\二值图\腐蚀后的图cv2.imshow('Original image',image)cv2.imshow('Eroded image',eroded_image)cv2.imshow('Binary Image', binary_image)cv2.imshow('Original image2',image2)cv2.imshow('Eroded image2',eroded_image2)#等待按下‘q’退出key=cv2.waitKey(1)if key&0XFF==ord('q'):break
#释放所有资源
cv2.destroyAllWindows()

三、运行现象

增加腐蚀次数效果会更明显

 图像腐蚀的目的:1、去除图像中微小物体 2、分离较近的俩个物体 3、减少一部分信息

四、完整代码

# coding: utf-8 
# 图像腐蚀的目的:1、去除图像中微小物体 2、分离较近的俩个物体 3、减少一部分信息import cv2
import numpy as np#从指定目录读取一张图片
image=cv2.imread('/home/raspberry4B/Pictures/MD.jpg',0)
image2=cv2.imread('/home/raspberry4B/Pictures/MD.jpg',-1)
#定义腐蚀操作的结构元素
kernel=np.ones((2,2),np.uint8)#图像二值化处理:使用127作为阈值  
_, binary_image = cv2.threshold(image, 127, 255, cv2.THRESH_BINARY)  #进行图像腐蚀操作(对二值图进行腐蚀),iterations表示腐蚀次数
eroded_image=cv2.erode(binary_image,kernel,iterations=1)
eroded_image2=cv2.erode(image2,kernel,iterations=1)while True:#显示原始图\二值图\腐蚀后的图cv2.imshow('Original image',image)cv2.imshow('Eroded image',eroded_image)cv2.imshow('Binary Image', binary_image)cv2.imshow('Original image2',image2)cv2.imshow('Eroded image2',eroded_image2)#等待按下‘q’退出key=cv2.waitKey(1)if key&0XFF==ord('q'):break
#释放所有资源
cv2.destroyAllWindows()

五、完整代码贴出

(持续更新中)opencv树莓派4B入门系列笔记6~10完整工程源码资源-CSDN文库

持续更新中……

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 2024国赛数学建模C题完整论文:农作物的种植策略
  • 在安卓和Windows下使用Vizario H264 RTSP
  • 计算机毕业设计选题推荐-动漫插画分享网站-Java/Python项目实战
  • Springboot工程配置https访问
  • 如何在SQL Server中恢复多个数据库?
  • 龙芯+FreeRTOS+LVGL实战笔记(新)——05部署主按钮
  • LIN总线CAPL函数—— 检查LIN报头的时间(ChkStart_LINHeaderToleranceViolation
  • redis为什么快
  • 系统找不到指定的文件怎么解决?
  • CSS学习10[重点]--浮动、浮动的效果以及内幕特性
  • 参会邀请 | 第二届机器视觉、图像处理与影像技术国际会议(MVIPIT 2024)
  • C++基础面试题 | 介绍C++中三种智能指针的使用场景?
  • 在 ANSA 中 ABAQUS 模板下螺栓预紧力设置
  • C语言 | Leetcode C语言题解之第391题完美矩形
  • Java程序分析工具
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • 【个人向】《HTTP图解》阅后小结
  • 【刷算法】从上往下打印二叉树
  • CEF与代理
  • linux安装openssl、swoole等扩展的具体步骤
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • Linux各目录及每个目录的详细介绍
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • Python中eval与exec的使用及区别
  • Spring-boot 启动时碰到的错误
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 力扣(LeetCode)965
  • 聊一聊前端的监控
  • 如何胜任知名企业的商业数据分析师?
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • #### golang中【堆】的使用及底层 ####
  • #pragma pack(1)
  • #QT(一种朴素的计算器实现方法)
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (2024,LoRA,全量微调,低秩,强正则化,缓解遗忘,多样性)LoRA 学习更少,遗忘更少
  • (6)STL算法之转换
  • (pytorch进阶之路)扩散概率模型
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (数据结构)顺序表的定义
  • (五)MySQL的备份及恢复
  • (一)Dubbo快速入门、介绍、使用
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .Net 4.0并行库实用性演练
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .net 按比例显示图片的缩略图
  • .net 获取url的方法
  • .Net 路由处理厉害了
  • .NET 药厂业务系统 CPU爆高分析
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .Net开发笔记(二十)创建一个需要授权的第三方组件
  • .skip() 和 .only() 的使用
  • .vimrc 配置项