【计算机视觉】-图像二值化 - 图像分割 -图像卷积

opencv基础篇 ——(三)图像二值化 图像二值化是图像处理中常用的一种技术,用于将灰度图像转换为只包含两个像素值(通常是黑色和白色)的二值图像。这种处理通常用于简化图像、减少数据量以及强调感兴趣的目标。 阅读详情

图像卷积:利用2D卷积核去扫图像,主要是为了实现Blur,高斯滤波本质也是通过卷积来实现的,只不过他的卷积核内参数是符合高斯分布的。

图像二值化:图像二值化之后为黑白图像,相当于mask掩模,用于挖出图像中的非规则感兴趣ROI区域。

图像分割:本文主要说的是传统方法的分割,主要是基于灰度图像的直方图统计,选取阈值,进行分割。

实现:我们会用到的工具有 python ,matplotlib,opencv进行接下来的任务

1、读取图像

img=cv2.imread('/mnt/disk2/oujie/107L2ZEWVQFI2($_Z4F{(]D.png')
plt.figure(figsize=(15,10))
plt.imshow(cv2.cvtColor(img.astype(np.uint8), cv2.COLOR_BGR2RGB))
plt.show()

2、原图灰度化并选取ROI区域

img_gray=cv2.cvtColor(img.astype(np.uint8), cv2.COLOR_BGR2GRAY)
img_roi=img_gray[150:520,380:800]

###################显示
plt.figure(figsize=(15,10))
plt.imshow(img_gray, cmap ='gray')
plt.show()

plt.figure(figsize=(15,10))
plt.imshow(img_roi, cmap ='gray')
plt.show()

3、利用直方图对ROI区域进行 “响应灰度值”统计,这里主要用numpy的直方图接口

img_roi_blur=cv2.GaussianBlur(img_roi,(5,5),0)
plt.figure(figsize=(15,10))
plt.imshow(img_roi_blur, cmap ='gray')
plt.show()
img_roi_data=img_roi_blur.flatten()#把数据转换成一维的
plt.figure(figsize=(15,10))
n, bins, patches = plt.hist(img_roi_data, bins=255, alpha=1)#为了显示出来用的plt接口
#numpy用法hist1=np.histogram(img_roi_data, bins=255) 
plt.show()

                                                               

4、选取阈值进行二值化,阈值选择主要是该类灰度值,数量多,我们选择120,要是想选择多个条件,可以结合numpy的逻辑运算

img_mask=np.zeros((img_gray.shape))
img_gray_blur=cv2.GaussianBlur(img_gray,(5,5),0)  #滤波可以减少噪声带来的影响
#img_mask[np.where(np.logical_and(img_gray>85,img_gray<120))]=255
img_mask[np.where(img_gray_blur>120)]=255
plt.figure(figsize=(15,10))
plt.imshow(img_mask, cmap ='gray')
plt.show()

5、利用mask扣出原图

记得一定要把得到的mask进行数据类型转化,uint8,或者支持的其他类型

img_result=cv2.bitwise_and(img,img,mask=img_mask.astype(np.uint8))
plt.figure(figsize=(15,10))
plt.imshow(cv2.cvtColor(img_result, cv2.COLOR_BGR2RGB))
plt.show()

6、二值化部分也可以用别的办法进行,比如动态阈值(大津法OTSU)

计算机视觉中常见的图像分割算法与网络模型 图像分割是计算机视觉领域的一个重要研究方向,它旨在将图像分割成多个区域或对象。 阅读详情

相关推荐

计算机视觉学习--图像分割Java详细使用说明

图像分割是计算机视觉中的一项关键技术,旨在将图像划分为多个有意义的区域,以便更好地进行分析和理解。其主要目标是将图像中的对象或区域分开,通常用于物体识别、图像分析和场景理解等任务。

l1337224493的博客 1224

图像二值化

图像二值化就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果的过程。图像的二值化使图像中数据量大为减少,从而能凸显出目标的轮廓。要得到二值化图像,首先要把图像灰度化,然后将256个亮度等级的灰度图像通过适当的阈值选取而获得仍然可以反映图像整体和局部特征的二值化图像。所有灰度大于或等于阈值的像素被判定为属于特定物体,其灰度值为255,否则这些像素点被排除在物体区域以外,灰度值为0,表示背景或者例外的物体区域。

crossoverpptx的博客 2万+

vTaskStartScheduler()详解

是启动 FreeRTOS 实时内核的“扳机”。在调用它之前,你只是创建了一些任务结构,但它们都处于“待命”状态,系统仍然在按传统的裸机前后台方式运行。调用这个函数后,FreeRTOS 内核会接管系统的控制权,开始根据优先级调度你创建的任务,多任务环境才真正开始。关键点:它没有参数。它的所有行为都由中的配置宏控制。它通常不会返回。一旦调用,除非没有任务可以运行(或者你显式地停止了调度器),否则程序流永远不会回到main()函数中调用它的下一行。是一个没有参数但行为由精密控制的函数。

Shylock_Mister的博客 1592

一文搞懂图像二值化算法

图像二值化( Image Binarization)就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果的过程。二值图像每个像素只有两种取值:要么纯黑,要么纯白。

不脱发的程序猿 5万+

Labview实现服务器(server)与多客户端(clients)通信

服务器可以接收多个客户端发送的消息,并显示消息来源。 服务器可以发送消息到指定客户端 客户端可以自动连接服务器,断连后重连 客户端可以发送消息到服务器,可接收服务器消息 类似框架可以用做中央服务器及客户端项目

u013809089的博客 7973

DeepSeek+知网研学:三步搞定文献矩阵与对比分析(实战指南)

本文提供了一套高效实用的文献管理分析实战指南,详细介绍了如何结合DeepSeek大模型与知网研学平台,通过三个核心步骤快速完成文献梳理。该方法能自动提炼文献核心要素、生成结构化对比矩阵,并辅助发现研究空白,显著提升学术研究者的文献分析效率与深度。

weixin_29061509的博客 488

图像处理:图片二值化学习,以及代码中如何实现

学习二值化的基本知识,以及图片二值化怎么实现的

bigger_belief的博客 6529

手把手教你用AFL挖掘C程序漏洞:从安装到实战(附常见错误排查)

本文详细介绍了如何使用American Fuzzy Lop (AFL)对C/C++程序进行模糊测试,从环境准备、目标程序插桩编译、初始语料库构建到实战运行与结果分析。重点讲解了AFL的安装、常见错误排查(如核心转储配置、执行速度优化)以及提升测试效率的高级策略(如持久模式、并行化),帮助开发者和安全工程师高效挖掘程序漏洞。

weixin_29014237的博客 407

图像处理&&二值化

深度学习小白进来看!

AKxiaokui的博客 2709

【雕爷学编程】Arduino动手做(45)---红外光电避障传感器模块4

雕爷学编程,Arduino动手做,开源硬件,创客传感器,红外光电避障传感器模块

雕爷学编程 2503

AUTOSAR-SOMEIP配置总结

导入arxml之后someip信号一般以“pduSomeIp”开头或者“SomeIp”开头。以某个pdu为例,设置项“Pdu Default Partition Ref”主要是根据模块设计,配置相应的Ecuc核分区。在导入arxml之后someip信号中有三个特殊的信号,形如“SdInstance”开头的信号,设置项“Pdu Default Partition Ref”主要是根据模块设计,配置相应的Ecuc核分区。“EcuC”模块主要关注“EcucPduCollection”中的“Pdus”下面的配置。

xiandang8023的博客 4649

计算机视觉期末笔记

计算机视觉笔记 图像:二值图(0,1) 灰度图(0~255) 彩色图(RGB) 卷积:滤波器翻转 ,可使用乘法交换律 互相关:滤波器不翻转,不可使用乘法交换律 边缘检测:求导求极值,极值点即为边缘 高斯滤波器: 均值滤波器: Sobel算子: RANSAC(直线检测算法,模型匹配算法) RANdom Sample Consistence 随机选择一组种子点对模型进行初始的估计 根据初始的估计计算出局内点(到直线的距离小于阈值) 若局内点的个数大于阈值,则此次估计有效,利用最小二乘法对直线重新拟

qq_43389238的博客 1514

【VS Code插件开发】通用功能(二)

本篇主要从command(命令)、menus(菜单)、快捷键三个方面讲解,都归于通用功能。

编码世界 1万+

Niblack二值化方法的实现

最近一直在研究图像分割技术,越研究觉得越有意思。这里所说的研究其实也只是研究别人论文然后自己实现一下而已罢了。。。 图像分割就是把图像中的各个部分分开,能区分出哪里是前景,哪里是背景,如果前景和背景分别用0和1表示,那就是叫做图像二值化了。但是图像分割也不仅仅限于二分,可以任意多的分。从这个角度讲二值化是图像分割结果的一种表示而已,只不过二分研究的比较多,也比较容易些。 至于分割的方法有很多种...

weixin_30810583的博客 601

【QT开发】web开发,内嵌网页展示和交互工具QWebEngineView类详解及实战应用

QWebEngineView 类为 Qt 应用提供了强大的网页展示和交互能力。通过合理运用其方法、属性和事件,能够创建出功能丰富、用户体验良好的网页浏览界面。在开发过程中,要注意处理常见问题,以确保网页的正常展示和交互效果。

科技改变人类,技术成就未来 2003

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

AI 图像智能修复老照片

近些年,基于深度学习的发展,计算机视觉在人工智能和深度学习的大背景下方兴未艾,与此同时,当越来越多的应用场景被挖掘出来时,也意味着计算机视觉的发展前景将无比广阔,其中图像处理技术就是最热门的应用之一,而最近一段时间,图像处理技术中最受欢迎的必须是图像修复功能,一键修复老照片等App应用,在社交网络上掀起一股潮流。 图像识别技术本身的原理并不复杂,信息的处理是这一技术的关键点所在。近...

lvchang 8027

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

OpenCV-Python Tutorials - 4.3. 图像阈值

目标: 学习简单的阈值处理,自适应阈值处理,Otsu’s的阈值处理等 学习函数:cv.threshold,cv.adaptiveThreshold等 简单阈值处理 这种阈值处理的方法是简单易懂的。如果像素值大于阈值,则为其分配一个值(可以是白色),否则为其分配另一个值(可以是黑色)。使用的函数是cv.threshold。函数第一个参数是源图像,它应该是灰度图像。第二个参数是用于对像素值进行分...

hpuhjl的专栏 663

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

GDPU|医学图像处理 实验四 医学图像分割(1)

GDPU医学图像处理实验四医学图像分割(1)。本实验旨在掌握图像分割的核心方法。通过Sobel算子分别提取图像1.jpg的水平、垂直及总体边缘,实现边缘检测;利用OTSU算法对图像2.jpg进行自适应阈值分割,将指纹目标保留为白色、背景设为黑色,有效分离目标与背景。实验结合直方图分析与自动阈值选择,验证了阈值分割与边缘检测在实际图像处理中的应用效果。

2301_79904341的博客 168

基于Python SVM与MATLAB CNN的手写数字识别系统实现

资源浏览阅读397次。手写数字识别系统是模式识别与计算机视觉领域中最具代表性的经典问题之一,其核心目标是让计算机能够自动、准确地识别出人类手写的0–9共10个阿拉伯数字图像。

一个爱折腾的玩家 399

【深度学习】基于知识库的手写体数字识别(Matlab代码实现)

随着我国现代技术的不断发展,手写数字识别技术中需要处理的数据样本量及特征指标大幅增加,也对处理数据模型和方法提出了更高的要求。支持向量机(SVM)、逻辑回归模型(LR)及决策树模型(DT)等新兴机器的学习方法虽然能够处理小样本等分类问题,但在处理多样本多特征数据时分类精度还有待改进。因此,本文以提升模型处理多样本和多特征指标数据集的分类预测性能为目标,对不同的基础模型进行集成应用分析。

weixin_66436111的博客 1293

opencv入门基础(c++)【三】

opencv入门基础(c++)十三、图像上采样和降采样13.1图像金字塔概念图像金字塔概念 – 高斯金字塔(变大变小)高斯不同(Difference of Gaussian-DOG)(变暗提取轮廓)采样相关API十四、基本阈值操作图像阈值(threshold)阈值类型阈值二值化(threshold binary)阈值反二值化(threshold binary Inverted)截断 (trunca...

Cream_Cicilian的博客 2009

【计算机视觉】图像分割与特征提取——基于Roberts、Prewitt、Sobel算子的图像分割实验

主要介绍Roberts算子、Sobel算子、Prewitt算子在图像分割中的应用以及它们之间的分割效果对比。

赵四司机的博客 1万+

OpenCV图像分割

阈值分割阈值分割是最基础的图像分割方法之一,通过设定一个阈值将像素分为两组:前景和背景。该方法假设图像中的目标和背景的灰度值差异较大,存在一个合适的阈值,使得灰度值高于该阈值的像素被划分为目标,灰度值低于该阈值的像素被划分为背景。自适应阈值分割自适应阈值分割能够根据图像的不同区域自动调整阈值,适用于光照不均的场景。该方法将图像划分为多个小区域(子块),每个子块分别计算阈值进行分割。Otsu’s二值化Otsu’s二值化是一种自动寻找最佳阈值的方法,特别适合于单峰分布的图像。

putaolove的博客 1384

图像二值化中阈值算法浅析

二值化中常见的阈值算法:1.OSTU大津法2.iteration迭代法3.Sobel算子图像边缘提取

Carry_qing的博客 9860
上一篇: (翻译,解读)TWO-STAGEPOOLING OF DEEP CONVOLUTIONAL FEATURES FOR IMAGE RETRIEVAL
下一篇: 【文章阅读】【代码复现】BiSeNet: Bilateral Segmentation Network for Real-time Semantic Segmentation 【code】
Jie Ou
博客等级 码龄10年 176粉丝 111原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值