图像分割1

【图像分割】理论篇(1)评估指标代码实现 图像分割是计算机视觉中的重要任务,用于将图像中的不同区域分割成具有语义意义的区域。 阅读详情
# 在绘图中显示中文字体,而非乱码
from pylab import mpl
mpl.rcParams["font.sans-serif"] = ["SimHei"]
# 在绘图中显示中文字体,而非乱码
from pylab import mpl
mpl.rcParams["font.sans-serif"] = ["SimHei"]

任选两种本章学过的算法(边缘检测或图像分割算法均可),对一张图像进行分割或边缘检测,并简要叙述算法原理、优缺点和实验发现。

#算法一  边缘检测
img =cv2.imread(图片路径, cv2.IMREAD_GRAYSCALE)
plt.subplot(1, 1, 1)
plt.imshow(img, 'gray')
plt.title("原图")
plt.xticks([])
plt.yticks([])
plt.show()
kernel_lp = np.array([[0,-1,0], [-1,4,-1], [0,-1,0]]) 
kernel_lp3 = np.array([[0,-1,0], [-1,4,-1], [0,-1,0], [8,-1,4], [6,-1,1]])   
kernel_LoG = np.array([[-2,-4,-4,-4,-2], [-4,0,8,0,-4], [-4,8,24,8,-4], [-4,0,8,0,-4], [-2,-4,-4,-4,-2]])
filtered_lp = cv2.filter2D(img, cv2.CV_16S, kernel_lp)
lp_img = cv2.convertScaleAbs(filtered_lp)
filtered_lp1 = cv2.Laplacian(img, cv2.CV_16S, ksize=3)
lp_img1 = cv2.convertScaleAbs(filtered_lp1)
filtered_LoG = cv2.filter2D(img, cv2.CV_16S, kernel_LoG)
LoG_img = cv2.convertScaleAbs(filtered_LoG)
title_list = ["拉普拉斯算子-3",  "拉普拉斯算子(调包-3)", "LoG算子"]
img_list = [lp_img,lp_img1,LoG_img]
for i in range(3):
    plt.subplot(3, 1, i+1)
    plt.imshow(img_list[i], 'gray')
    plt.title(title_list[i])
    plt.xticks([])
    plt.yticks([])
plt.show()

#算法二  图像分割算法  
img =cv2.imread(r"C:\Users\zhang\Desktop\IMG_20230409_131124.jpg", cv2.IMREAD_GRAYSCALE)
plt.subplot(2,2,1), plt.imshow(img, 'gray'), plt.title('原始图像'), plt.xticks([]), plt.yticks([])
plt.subplot(2,2,2), plt.hist(img.ravel(), 256, [0, 256])
plt.title('直方图'), plt.xlim([0, 256])
zmin = np.min(img)
zmax = np.max(img)
T0 = int((zmin + zmax) / 2)
eps = 1
while True:
    mu0 = img[img < T0].mean()
    mu1 = img[img > T0].mean()
    T1 = (mu0 + mu1) / 2
    if abs(T1 - T0) < eps:
        break
    T0 = T1
T0 = int(T0)
_, img_seg_diedai = cv2.threshold(img, T0, 255, 0)
plt.subplot(2,2,3), plt.imshow(img_seg_diedai, 'gray'), plt.title('迭代法'), plt.xticks([]), plt.yticks([])
thres, img_seg_otsu = cv2.threshold(img, 0, 255, cv2.THRESH_OTSU)
plt.subplot(2,2,4), plt.imshow(img_seg_otsu, 'gray'), plt.title('大津法'), plt.xticks([]), plt.yticks([])
plt.show()

二阶导数边界检测:

二阶导数利用过零点来检测边界。

过零点检测步骤:假设滤波后图像为g(x,y)

(1)取出以p为中心的一个3*3邻域,p在左/右、上/下和两个对角方向中某一方向的邻域像素二阶导数值符号不同。

(2)g(x,y)在某一个方向的邻域像素响应值差的绝对值超过一个阈值,则说明该点是一个过零点。

二阶导数边界检测算子:

(1)拉普拉斯算子,具备各向同性的性质。

由于其无方向,故只需一个模板就可以进行边界检测。

对于阶跃型边界定位较为准确,但对噪声的敏感性较强,容易造成不连续的边界检测。

(2)LoG算子:拉普拉斯算子的改进,通常采用拉普拉斯-高斯算子(LoG)先进行图像滤波,抑制噪声, 然后对滤波图像计算二阶导数,以提高边界检测能力。

优缺点:

1.拉普拉斯算子:

优点:计算简单,对边缘的响应强烈。

缺点:对噪声敏感,可能会产生虚假边缘。

2.高斯拉普拉斯算子:

优点:通过高斯平滑减少噪声影响,边缘检测更准确。

缺点:计算复杂度较高,对参数(如σ)的选择敏感。

发现:

在噪声较多的图像中,拉普拉斯算子会产生许多虚假边缘。而高斯拉普拉斯算子在平滑图像的同时检测边缘,效果通常比拉普拉斯算子更好,尤其是在噪声较多的情况下。选择合适的σ值对高斯拉普拉斯算子的性能有很大影响。

迭代阈值法:

根据当前阈值,通过某种规则估算一个更优的阈值,重复执行该过程,直到相邻两次的阈值差小于某个指定的参数,此时认为算法收敛,否则继续迭代。

(1)估计初始阈值。

(2)阈值将图像灰度值分成2类,大于阈值的灰度值组成,小于阈值的灰度值组成,分别计算和的灰度均值和。

(3)计算和的平均值

。

(4)如果大于某个预定义的参数,则将赋予,执行第(2)步;否则,算法收敛,采用阈值分割图像。

当目标和背景呈现双峰分布时,迭代阈值法一般会得到好的分割结果。

通常将图像中最小灰度值和最大灰度值的平均值作为初始阈值。

Otsu阈值法:

Otsu阈值法认为最优的阈值应使得分割后的两类(前景和背景)的类间方差最大。

优缺点:

迭代阈值法:

优点:自适应性强,不需要人为选择阈值。

缺点:对于直方图双峰不明显的图像,效果可能不佳;计算量较大,速度较慢。

Otsu阈值法:

优点:自动性强,计算效率高,适用于全局阈值。

缺点:对于光照不均匀或噪声干扰大的图像,效果可能不佳。

从ResNet到U-Net:残差连接在图像分割中的‘降维打击’,一个1x1卷积就搞定 本文探讨了残差连接在图像分割中的关键作用,特别是从ResNet到U-Net的演进。通过1x1卷积实现维度适配,残差连接显著提升了U-Net的性能,解决了梯度消失和信息衰减问题。文章详细解析了残差学习的优势、U-Net的瓶颈及实战应用,为医学影像分割等领域提供了高效解决方案。 阅读详情

相关推荐

光照不均匀图像分割技巧1——分块阈值

在数字图像处理中,图像分割是很关键的一步,当图像质量较好,光照很均匀的时候只需用全局阈值的方法就能很完美地完成图像分割任务,但是有些时候会遇到光照不均匀的现象,这个时候就需要用一些技巧才能达...

技术改变世界 2万+

七天入门图像分割(1):图像分割综述

最近在研究自动驾驶视觉语义地图构建,因为要使用到语义分割技术,趁此机会学习了百度飞桨的图像分割课程,课程蛮好的,收获也蛮大。 课程地址:https://aistudio.baidu.com/aistudio/course/introduce/1767 1. 课程简要介绍 首先给出了图像分割的定义,如下面两张图所示,本质是对图像进行像素级分类。 下面是课程安排,本次课程总共有7节课,理论学习主要集中在前6节,最后一节是课程总结与前沿技术介绍。前面6节课安排如下: 在本.

10点43的博客 1502

L1正则化在图像分割中的应用

作者:禅与计算机程序设计艺术 图像分割(Image Segmentation)是计算机视觉领域的一个重要任务,它能够将输入图像划分成多个像素区域,对应着物体或者场景中的不同部分。图像分割的目标是实现高精度的目标检测、图像分类、生成虚假图像等,对于图像理解、分析、处理、应用都起到至关重要的作用。 传统图像分割算法基于像素或边缘

AI天才研究院 2037

图像分割(1)——基本图像分割

图像分割传统方法概述基于阈值的分割方法固定阈值分割直方图双峰法半阈值分割迭代阈值图像分割自适应阈值图像分割基于边缘的分割方法基于区域的分割方法种子区域生长法区域分裂合并法分水岭法基于图论的分割方法Graph Cut 图像分割是由图像处理进到图像分析的关键步骤。它是目标表达的基础,使得更高层的图像分析和理解称为可能。 主要难点: 多尺度问题 多视角问题(旋转) 光照问题 感受野引发的边缘震荡 类别不均衡问题 区域遮挡问题 基本依据 区域内一致性 区域间不一致性 基于阈值的分割方法 阈值法的

weixin_44554973的博客 2283

结构化随机森林MATLAB图像分割实战-SRFAff_v1

随机森林作为机器学习中的一种集成学习方法,因其在处理非结构化数据,如图像分割领域的出色表现而闻名。该方法基于决策树的集成,通过在训练过程中引入随机性来增强模型的泛化能力。图像分割通常需要准确识别图像中的不同对象或区域,这一过程在医疗成像、卫星图像处理等众多领域都极为重要。在接下来的章节中,我们将深入探讨随机森林算法如何应用于图像分割任务,并通过MATLAB这一强大的科学计算环境进行实现。

weixin_28487725的博客 1002

ESXI 8.0.3 ubuntu 24.04 直通显卡P40

手把手,一步步教你直通GPU,ESXI 8.0.3 ubuntu 24.04 直通显卡P40

qq_36433118的博客 4682

图像分割语义分割mobilenetv1-unet网络 基于pytorch框架制作

全套项目,包含网络模型,训练代码,预测代码,直接下载数据集就能跑,拿上就能用,简单又省事儿。图像分割语义分割mobilenetv1-unet网络 基于pytorch框架制作。内附四五个数据,供验证使用。

2301_78886373的博客 315

在trae CN中使用conda环境(已解决)

Trae CN 是字节跳动于 2025 年 3 月 3 日发布的国内首个 AI 原生集成开发环境(AI IDE)123。

zwzscnds的博客 6935

图像分割1,概述

图像分割之(一)概述 zouxy09@qq.com http://blog.youkuaiyun.com/zouxy09          所谓图像分割指的是根据灰度、颜色、纹理和形状等特征把图像划分成若干互不交迭的区域,并使这些特征在同一区域内呈现出相似性,而在不同区域间呈现出明显的差异性。我们先对目前主要的图像分割方法做个概述,后面再对个别方法做详细的了解和学习。 1、基于阈

萧瑟一笑的专栏 1596

从STM32转战小华HC32F448:手把手教你搞定串口复用与超时中断(附完整代码)

本文详细介绍了从STM32迁移到小华HC32F448的串口开发实战指南,重点解析了HC32F448的GPIO复用系统和超时中断机制。通过对比STM32的架构差异,提供了完整的串口配置代码和优化方案,帮助开发者快速掌握HC32F448的串口通信技术,适用于工业控制等应用场景。

weixin_30564901的博客 547

腾讯游戏安全组件运行异常的全面解决方案

在使用腾讯游戏时,玩家可能会遭遇游戏安全组件运行异常的问题,这不仅影响游戏的正常启动,还可能在游戏过程中引发一系列问题。本文将详细介绍解决腾讯游戏安全组件运行异常的几种方法,帮助玩家重拾游戏乐趣。腾讯游戏安全组件运行异常是一个复杂的问题,可能涉及服务设置、游戏更新、系统环境优化以及硬件与驱动检查等多个方面。最后,希望本文能帮助玩家顺利解决腾讯游戏安全组件运行异常的问题,让玩家能够无忧无虑地享受游戏带来的乐趣。首先,我们需要从系统的服务管理入手,检查与游戏安全组件相关的服务是否正常运行。

nntxthml的博客 5807

OpenCV(EmguCV)2.1新特性介绍之图像分割GrabCut(GrabCut Of OpenCV 2.1)

http://www.cnblogs.com/xrwang/archive/2010/04/27/GrabCut.html 作者:王先荣     前不久OpenCV和EmguCV相继发布了2.1版,增加了一些新的特性,本文关注的是其中的图像分割部分——GrabCut。GrabCut主要用于图像编辑中的抠图,作用跟Photoshop中的魔法棒、套索类似,但是更加强大。由于没有GrabCut的文档

jiangxinyu的专栏 4908

汽车诊断服务(UDS——0x11服务解析)

ECU复位服务(0x11)详解:该服务支持硬件/钥匙开关/软件三种复位类型(0x01-0x03),复位前需发送肯定响应。请求格式为11+子功能,响应含51+子功能。典型应用需配合安全访问流程,测试时需监控CAN总线通信及DTC状态。复位后ECU将返回默认会话,期间不处理任何诊断请求。服务在编程会话且安全解锁后执行,硬复位会初始化存储数据。

从事汽车行业 979

图像分割【1】mask标签

灰度图像的每个像素用一个亮度值表示,通常在 0 到 255 之间。它的表示形式是一张二维矩阵,每个元素代表对应位置的像素的亮度。这种图像简化了很多图像处理任务,特别是当颜色信息不重要时。

wahahaha116的博客 2913

2026年全国青少年信息素养大赛复赛真题(算法应用主题赛C++初中组:带解析)(7月4日试卷一)【文末附答案和解析】

2026年全国青少年信息素养大赛复赛真题(算法应用主题赛C++初中组:带解析)(7月4日试卷一)【文末附答案和解析】

王老师青少年编程 1736

DeepSeek+Cline:开启自动化编程新纪元

随着 AI 技术不断进步,编程领域迎来效率变革。DeepSeek 与 Cline 的结合,成为自动化编程的强大工具。DeepSeek 凭借先进的自然语言处理能力,能精准理解编程需求;Cline 作为 VSCode 插件,可实现代码生成、调试、注释等功能的无缝衔接。本文详细阐述二者安装配置、实战操作流程,涵盖从基础代码生成到复杂项目开发的应用技巧,同时解答常见问题,帮助开发者快速掌握这对 “智能搭档”,提升编程效率,解锁自动化编程的无限可能。

邓邓子的博客 6254

1小时搭建SEGFORMER原型:快速验证图像分割创意

最近在做一个图像分割相关的项目,需要快速验证几个商业想法,但作为非AI专业的开发者,从头搭建SEGFORMER模型实在太费时间。记录下这个高效的方法,或许能帮到同样需要快速验证创意的朋友。相比传统CNN结构,它对长距离依赖关系的捕捉能力更强,特别适合需要精细分割的场景。不过最吸引我的是HuggingFace上提供的预训练模型,开箱即用省去了训练环节。上完成,他们的在线编辑器直接集成了Python环境,省去了本地配置的麻烦。最实用的是部署功能,点击按钮就能生成可公开访问的链接,客户反馈说操作流程非常顺畅。

GreyWolf12的博客 612

揭秘AI人工智能中Stable Diffusion的模型微调技巧

Stable Diffusion作为一种强大的文本到图像生成模型,在艺术创作、设计、娱乐等多个领域展现出了巨大的应用潜力。然而,其默认的模型输出可能无法满足特定用户或特定场景的个性化需求。本文章的目的在于深入揭秘Stable Diffusion的模型微调技巧,让读者能够根据自己的需求对模型进行定制化调整,生成符合特定风格、主题或要求的图像。范围涵盖了从基础概念到实际操作,从理论原理到项目实战的全方位内容,旨在为读者提供一个系统且深入的学习指南。

大模型应用工坊 948

1--图像分割之UNet

参考来源https://mp.weixin.qq.com/s?__biz=MzIxODg1OTk1MA==&mid=2247484552&idx=1&sn=419a4ec2a98be9bd3b8690ed855d0f33&chksm=97e55449a092dd5fb304a110566ff99fe838683570a6063934a5067c57ad7b0019592ee519af&scene=178&cur_album_id=135080111188361

qq_40073354的博客 8567

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

图像分割 1.基于阈值的算法

单阈值图像分割算法,有手动阀值,自适应阈值,最大熵法,基本全局阈值法,OTSU阈值。

yuyangyg的博客 5282

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

2004-基于空间约束的模糊 C 均值聚类(FCM_S1)算法的图像分割

2004-基于空间约束的模糊 C 均值聚类(FCM_S1)算法的图像分割

Qxx_____的博客 847

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Cellpose3 3.1.1.2版本发布:图像分割工具的重要更新

Cellpose是一个开源的细胞图像分割工具,由MouseLand团队开发维护。它采用深度学习技术,能够自动识别和分割显微镜图像中的细胞结构,广泛应用于生物医学研究领域。该项目以其易用性和准确性在科研社区中获得了广泛认可。 ## 版本更新亮点 Cellpose3 3.1.1.2版本是该系列的一个重要维护版本,主要修复了多个关键问题并进行了性能优化,为即将到来的Cellpose-SAM大版本更新...

gitblog_01343的博客 423

FoodSeg103-Benchmark-v1:食品图像分割的大型基准数据集

FoodSeg103-Benchmark-v1:食品图像分割的大型基准数据集 项目介绍 FoodSeg103-Benchmark-v1 是一个针对食品图像分割的大型基准数据集。该数据集包含了7118张食品图像,每张图像都标注了104种食材类别,并提供了像素级的遮罩。此外,项目提出了一个名为ReLeM的多模态预训练方法,该方法能够为分割模型显式地装备丰富的食品知识。 项目技术分析 FoodSeg10...

gitblog_00614的博客 1030

SAM 3.1:重新定义图像分割的智能边界

在计算机视觉领域,图像分割技术正经历着革命性的变革。Meta最新推出的SAM 3.1(Segment Anything with Concepts)作为统一的基础模型,正在重新定义我们如何通过文本或视觉提示来检测、分割和跟踪图像与视频中的对象。这款先进的图像分割模型不仅支持点、框和掩码等多种提示方式,更引入了突破性的Object Multiplex技术,为多对象联合跟踪带来了前所未有的效率提升。

gitblog_00080的博客 338

RMBG-1.4 开源价值挖掘:AI 净界推动图像分割平民化

本文介绍了如何在星图GPU平台上一键自动化部署AI净界-RMBG-1.4镜像,实现高效精准的图像分割。该工具能够快速移除图片背景,适用于电商产品图处理、内容创作和设计辅助等场景,大幅提升图像编辑效率,推动AI技术平民化。

weixin_33363025的博客 73

1小时搭建:用Mask R-CNN快速验证你的图像分割创意

最近在尝试图像分割相关的项目时,发现Mask R-CNN这个强大的模型特别适合快速验证想法。这里分享下我是如何用1小时搭建一个能跑起来的原型系统的,整个过程几乎没踩坑,特别适合想快速看到效果的朋友们。来部署这类演示系统,不需要自己折腾服务器配置,上传Dockerfile就能一键发布成可访问的web服务。我测试时从代码推送到公网可访问只用了3分钟,对快速验证场景来说效率提升非常明显。- 电商平台的商品自动抠图功能。- 医疗影像的病灶区域标注辅助。- 工业质检的缺陷定位演示。

SilvermistRaven28的博客 908
上一篇: 图像形态学
下一篇: 图像分割(二)
zhanghongyi_cpp
博客等级 码龄4年 2458粉丝 413原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值