MATLAB数字图像处理:红苹果的目标与背景分割与提取
创作时间:
作者:
@小白创作中心
MATLAB数字图像处理:红苹果的目标与背景分割与提取
引用
CSDN
1.
https://blog.csdn.net/2202_75442297/article/details/145517544
在数字图像处理领域,目标与背景的分割是一项基础且重要的技术。本文将以红苹果的图像处理为例,详细介绍如何使用MATLAB实现目标与背景的分割与提取。通过本案例的学习,读者可以掌握图像消噪、目标分析、阈值分割等关键技术,并能够应用到实际的图像处理项目中。
主要要求
提取红苹果
建议方法
- 将已知图像进行消噪处理
- 对彩色图像进行目标和背景分析
- 通过阈值法将图像进行分割
- 提取目标
难点
- 确定目标区域的特征
- 边界修复与区域分割
实验结果
原始图像:展示了包含红苹果以及背景场景的原始画面,并且红苹果与背景的颜色、纹理等特征相互交织,不易直接区分。
整体上看,添加高斯噪声的图像会变得 “模糊” 且带有一些类似 “颗粒” 的效果,原本清晰的细节部分会被噪声干扰,看起来不再那么平滑和锐利,图像质量有所下降。
对添加高斯噪声后的图像的 RGB 三个通道分别进行高斯滤波,其主要目的是减少之前添加的高斯噪声对图像造成的干扰,尽可能恢复图像原本的清晰度和质量。整体来看,经过高斯滤波处理后的图像(即 denoisedImage)相较于添加噪声后的图像(noisyImage),视觉上会变得更加清晰和平滑,之前因噪声产生的那些 “颗粒感” 以及图像细节处的模糊现象会得到一定程度的改善。
提取的红苹果:最终提取出的红苹果图像以彩色形式呈现,其中苹果区域显示为原图像中的颜色,背景为黑色。整体上能够大致看出红苹果的形状和位置,但在苹果的边缘部分,尤其是与背景颜色过渡较为自然的区域,存在一些模糊和不精确的现象,这是由于边界修复不够完善以及区域分割不够精准导致的。
自行拍摄的图片添加椒盐噪声以及去噪之后的图像:
MATLAB代码实现
椒盐噪声处理
% 读取图像(确保图像文件名为apple.jpg且在当前Matlab工作目录下,或者给出完整路径)
image = imread('apple.jpg');
% 步骤一:添加椒盐噪声
% 设置椒盐噪声密度(可根据实际情况调整噪声强度,取值范围0到1)
noiseDensity = 0.02;
noisyImage = imnoise(image, 'salt & pepper', noiseDensity);
% 分离添加噪声后图像的RGB三个通道
noisyRedChannel = noisyImage(:, :, 1);
noisyGreenChannel = noisyImage(:, :, 2);
noisyBlueChannel = noisyImage(:, :, 3);
% 对每个通道分别进行中值滤波,使用3×3的滤波窗口(窗口大小可按需调整)
denoisedRedChannel = medfilt2(noisyRedChannel, [3 3]);
denoisedGreenChannel = medfilt2(noisyGreenChannel, [3 3]);
denoisedBlueChannel = medfilt2(noisyBlueChannel, [3 3]);
% 将滤波后的三个通道重新合并为彩色图像
denoisedImage = cat(3, denoisedRedChannel, denoisedGreenChannel, denoisedBlueChannel);
% 步骤二:将彩色图像从RGB空间转换为HSV空间
hsvImage = rgb2hsv(denoisedImage);
% 分离HSV三个通道
hue = hsvImage(:, :, 1);
saturation = hsvImage(:, :, 2);
value = hsvImage(:, :, 3);
% 步骤三:阈值法图像分割(调整合适的HSV阈值)
% 色相(Hue),进一步微调色相阈值范围,使其更贴合红苹果颜色特征
redHueLower = 0;
redHueUpper = 0.1;
redHueMask1 = (hue >= redHueLower) & (hue <= redHueUpper);
redHueLower = 0.9;
redHueUpper = 1;
redHueMask2 = (hue >= redHueLower) & (hue <= redHueUpper);
redHueMask = redHueMask1 | redHueMask2;
% 饱和度(Saturation),适当提高饱和度阈值,让苹果颜色更纯的区域被选中
saturationThreshold = 0.3;
saturationMask = saturation >= saturationThreshold;
% 明度(Value),根据图像实际亮度情况微调明度阈值
valueThreshold = 0.2;
valueMask = value >= valueThreshold;
% 综合三个通道的掩码得到分割掩码
segmentationMask = redHueMask & saturationMask & valueMask;
% 步骤四:目标提取
% 进行形态学开运算
se = strel('disk', 3);
openedMask = imopen(segmentationMask, se);
% 找到目标区域
[labeledImage, numRegions] = bwlabel(openedMask);
% 提取最大的连通区域作为红苹果
maxArea = 0;
maxLabel = 0;
for region = 1:numRegions
currentRegion = labeledImage == region;
area = sum(currentRegion(:));
if area > maxArea
maxArea = area;
maxLabel = region;
end
end
% 最终提取的红苹果目标图像
appleBinary = labeledImage == maxLabel;
imageDouble = im2double(image);
% 可以将二值图像转换回和原图像相同大小的彩色图像
extractedApple = zeros(size(image), 'double');
extractedApple(:, :, 1) = imageDouble(:, :, 1).* appleBinary;
extractedApple(:, :, 2) = imageDouble(:, :, 2).* appleBinary;
extractedApple(:, :, 3) = imageDouble(:, :, 3).* appleBinary;
% 显示结果
subplot(2, 3, 1);
imshow(image);
title('原始图像');
subplot(2, 3, 2);
imshow(noisyImage);
title('添加椒盐噪声后的图像');
subplot(2, 3, 3);
imshow(denoisedImage);
title('中值滤波后图像');
subplot(2, 3, 4);
imshow(segmentationMask);
title('分割掩码');
subplot(2, 3, 5);
imshow(extractedApple);
title('提取的红苹果');
高斯噪声处理
image = imread('apple2.jpg');
% 步骤一:添加高斯噪声
% 设置高斯噪声的均值和标准差
meanValue = 0;
stdDeviation = 0.05;
noisyImage = imnoise(image, 'gaussian', meanValue, stdDeviation);
% 分离添加噪声后图像的RGB三个通道
noisyRedChannel = noisyImage(:, :, 1);
noisyGreenChannel = noisyImage(:, :, 2);
noisyBlueChannel = noisyImage(:, :, 3);
% 对每个通道分别进行高斯滤波,使用3×3的滤波窗口
% 生成高斯滤波器,标准差设为1
h = fspecial('gaussian', [3 3], 1);
denoisedRedChannel = imfilter(noisyRedChannel, h, 'replicate');
denoisedGreenChannel = imfilter(noisyGreenChannel, h, 'replicate');
denoisedBlueChannel = imfilter(noisyBlueChannel, h, 'replicate');
% 将滤波后的三个通道重新合并为彩色图像
denoisedImage = cat(3, denoisedRedChannel, denoisedGreenChannel, denoisedBlueChannel);
% 步骤二:将彩色图像从RGB空间转换为HSV空间
hsvImage = rgb2hsv(denoisedImage);
% 分离HSV三个通道
hue = hsvImage(:, :, 1);
saturation = hsvImage(:, :, 2);
value = hsvImage(:, :, 3);
% 步骤三:阈值法图像分割
% 色相(Hue)
redHueLower = 0;
redHueUpper = 0.12;
redHueMask1 = (hue >= redHueLower) & (hue <= redHueUpper);
redHueLower = 0.8;
redHueUpper = 1;
redHueMask2 = (hue >= redHueLower) & (hue <= redHueUpper);
redHueMask = redHueMask1 | redHueMask2;
% 饱和度(Saturation)
saturationThreshold = 0.3;
saturationMask = saturation >= saturationThreshold;
% 明度(Value)
valueThreshold = 0.2;
valueMask = value >= valueThreshold;
% 综合三个通道的掩码得到分割掩码
segmentationMask = redHueMask & saturationMask & valueMask;
% 步骤四:目标提取
% 进行形态学开运算
se = strel('disk', 3);
openedMask = imopen(segmentationMask, se);
% 找到目标区域
[labeledImage, numRegions] = bwlabel(openedMask);
% 提取最大的连通区域作为红苹果
maxArea = 0;
maxLabel = 0;
for region = 1:numRegions
currentRegion = labeledImage == region;
area = sum(currentRegion(:));
if area > maxArea
maxArea = area;
maxLabel = region;
end
end
% 最终提取的红苹果目标图像
appleBinary = labeledImage == maxLabel;
imageDouble = im2double(image);
% 可以将二值图像转换回和原图像相同大小的彩色图像
extractedApple = zeros(size(image), 'double');
extractedApple(:, :, 1) = imageDouble(:, :, 1).* appleBinary;
extractedApple(:, :, 2) = imageDouble(:, :, 2).* appleBinary;
extractedApple(:, :, 3) = imageDouble(:, :, 3).* appleBinary;
% 显示结果
subplot(2, 3, 1);
imshow(image);
title('原始图像');
subplot(2, 3, 2);
imshow(noisyImage);
title('添加高斯噪声后的图像');
subplot(2, 3, 3);
imshow(denoisedImage);
title('高斯滤波后图像');
subplot(2, 3, 4);
imshow(segmentationMask);
title('分割掩码');
subplot(2, 3, 5);
imshow(extractedApple);
title('提取的红苹果');
热门推荐
职业教育教学改革、课程改革、就业导向及相关课题研究领域
锂电池退场?钠电池有望为绿色经济提供动力
脑鸣应该怎么办
张雪峰谈口腔医学专业就业前景、考研方向、优势与劣势
深冷处理原理及应用领域
燃气泄漏别慌张 应急方法须牢记
胃痉挛是什么引起的
有鼻窦炎可以喝什么茶
开学季遇上流感,广东“德叔”支招:提高免疫力,正确辨证施治
面对乙肝别害怕,牢记这5点,控制病情很关键
韩语中如何表达‘再见’?
MyBatis-Plus条件构造器:构建安全、高效的数据库查询
居民企业和非居民企业的区分标准
高中教师资格考试内容与备考攻略:详解2024年高中教师资格证考试科目概览
部署多个项目怎么管理好
人参,流淌千年的史诗
大户型、高总价新房成交抢眼 西安前11个月房价同比“飘红”
唐朝军队军力如何?大唐军威为何能横扫亚洲?
短发新宠:蓬松修饰后脑勺的魅力
沙子水泥用量计算公式是怎样的
奔跑在山水之间,千余名跑友打卡塘溪
风云诡谲下的抉择:崇祯缘何除掉袁崇焕
左手食指断了一节是几级伤残怎么打官司
老师傅详细讲解重庆火锅底料的炒制和各类调味料的选购(附配方)
米开朗基罗著名雕塑
移民泰国需要多少人民币?详解泰国移民费用与计划
失眠危害有多大?如何干预
股市休市的原因有哪些?这些原因对投资者的策略有何影响?
细胞是生命的基本单位,疾病源于细胞,健康源于细胞
利玛窦:一位跨越东西方的文化使者