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

利用几种阈值法从给定的图像中分割出目标,去除背景

图像分割是图像处理中的一个重要步骤,用于将图像中的目标与背景分离。阈值法是一种简单而有效的图像分割方法,通过选择合适的阈值将图像像素分为前景和背景。

1. 全局阈值法

全局阈值法使用一个固定的阈值对整个图像进行分割。这种方法适用于背景和目标对比度较高的图像。

function segmented_image = global_thresholding(image, threshold)% 输入:灰度图像 image 和阈值 threshold% 输出:分割后的二值图像 segmented_image% 将图像转换为二值图像segmented_image = image > threshold;
end
2. 自适应阈值法

自适应阈值法根据图像的局部区域动态调整阈值,适用于背景不均匀的图像。

function segmented_image = adaptive_thresholding(image, neighborhood_size, C)% 输入:灰度图像 image,邻域大小 neighborhood_size 和常数 C% 输出:分割后的二值图像 segmented_image% 使用自适应阈值法分割图像segmented_image = adaptthresh(image, 'NeighborhoodSize', neighborhood_size, 'Sensitivity', C);segmented_image = imbinarize(image, segmented_image);
end
3. Otsu阈值法

Otsu阈值法是一种自动选择阈值的方法,通过最小化图像的类内方差或等价地最大化类间方差来确定阈值。

function segmented_image = otsu_thresholding(image)% 输入:灰度图像 image% 输出:分割后的二值图像 segmented_image% 使用Otsu方法自动计算阈值threshold = graythresh(image);segmented_image = imbinarize(image, threshold);
end
4. 多阈值法

多阈值法使用多个阈值将图像分为多个区域,适用于目标和背景对比度复杂的情况。

function segmented_image = multi_thresholding(image, thresholds)% 输入:灰度图像 image 和阈值数组 thresholds% 输出:分割后的多区域图像 segmented_image% 初始化分割图像segmented_image = zeros(size(image), 'uint8');% 遍历每个阈值for i = 1:length(thresholds)-1segmented_image(image > thresholds(i) & image <= thresholds(i+1)) = i;end
end
5. MATLAB代码

展示如何使用上述方法从给定的图像中分割出目标并去除背景。

% 清空环境
clc;
clear;
close all;% 读取图像
image = imread('example_image.jpg'); % 替换为实际图像路径
image = rgb2gray(image); % 转换为灰度图像% 全局阈值法
threshold = 128; % 选择一个合适的阈值
segmented_image_global = global_thresholding(image, threshold);% 自适应阈值法
neighborhood_size = 15; % 邻域大小
C = 0.1; % 常数
segmented_image_adaptive = adaptive_thresholding(image, neighborhood_size, C);% Otsu阈值法
segmented_image_otsu = otsu_thresholding(image);% 多阈值法
thresholds = [50, 150, 200]; % 选择多个阈值
segmented_image_multi = multi_thresholding(image, thresholds);% 显示结果
figure;
subplot(2, 3, 1);
imshow(image);
title('原始图像');subplot(2, 3, 2);
imshow(segmented_image_global);
title('全局阈值法');subplot(2, 3, 3);
imshow(segmented_image_adaptive);
title('自适应阈值法');subplot(2, 3, 4);
imshow(segmented_image_otsu);
title('Otsu阈值法');subplot(2, 3, 5);
imshow(segmented_image_multi);
title('多阈值法');

参考代码 利用几种阈值法从给定的图像中分割出目标,去除背景 www.youwenfan.com/contentcsi/83853.html

6. 结果分析

通过上述,可以对给定的图像进行分割,提取出目标并去除背景。不同的阈值法适用于不同的图像特性:

  • 全局阈值法:适用于背景和目标对比度较高的图像。
  • 自适应阈值法:适用于背景不均匀的图像。
  • Otsu阈值法:自动选择阈值,适用于大多数灰度图像。
  • 多阈值法:适用于目标和背景对比度复杂的情况。

通过选择合适的阈值法,可以有效地从图像中分割出目标并去除背景,为后续的图像分析和处理提供基础。

http://www.dtcms.com/a/410422.html

相关文章:

  • 编程技术杂谈5.0
  • 上海网站seoseodian闲置电脑做网站服务器
  • SSM(MybatisPlus)
  • Qt线程的两种使用方式
  • 怎么自己做礼品网站企业培训课程分类
  • 在 openEuler 上排查 Docker 同桥网络不通:从“全线超时”到定位容器没启动
  • vector深度求索(上)实用篇
  • 筛选选功能形网站建设东营网站设计
  • 创建一个网站的英文wordpress 版本查询
  • DevEco Studio 编辑器的使用
  • VSCode中Python库识别的设置(关于解决VSCode中Python库引入未下载的库不显示黄色虚线的问题)
  • 网站你懂我意思正能量app阿里云Windows建立WordPress
  • K8s学习笔记(八) K8s资源对象
  • 医疗数据集成的挑战,iPaaS 如何保障隐私与安全?
  • 【金仓数据库产品体验官】Windows 安装 KingbaseES V9R1C10 与 Oracle 兼容特性实战
  • 阿里云建站流程集约化网站建设
  • Classic McEliece:后量子密码的“元老”与NIST标准化的启示
  • 【论健康】健康的不可能三角
  • 19C数据库提示ORA-65096: 公用用户名或角色名无效(详细操作版)
  • 软考中级习题与解答——第十三章_数据库分析与设计(2)
  • tomcat升级操作
  • 广州高端品牌网站建设后台管理便捷蜜雪冰城推广软文
  • 基于 SpringBoot+Logicflow 的轻流程任务执行
  • 基础组合计数(三道例题)
  • ShardingSphere 与分库分表:分布式数据库中间件实战指南
  • 《三重AI协作交易系统:从技术债泥潭到毫秒级响应的实战笔记》
  • AI 赋能楼宇自控 DDC 系统:重构智慧建筑的核心引擎
  • 更改wordpress密码上海关键词优化排名哪家好
  • 最好的设计师网站wordpress 实例
  • IDEA 实现SpringBoot热部署(HotSwap和DevTools混用)