基于Matlab的彩色图像分割

更新时间:2023-06-23 14:50:06 阅读: 评论:0

3 Matlab编程实现
3.1 Matlab编程过程
拉水便
    用Matlab来分割彩色图像的过程如下:
1)获取图像的RGB颜色信息。通过与用户的交互操作来提示用户输入待处理的彩色图像文件路径;毛血旺配料
2)RGB彩色空间到lab彩色空间的转换。通过函数makecform()和applycform()来实现;
3)对ab分量进行Kmean聚类。调用函数kmeans()来实现;
4)显示分割后的各个区域。用三副图像分别来显示各个分割目标,背景用黑色表示。
3.2 Matlab程序源码
%文件读取格斗式
clear;
clc;
file_name = input('请输入图像文件路径:','s');
文物鉴定
I_rgb = imread(file_name);      %读取文件数据
figure();
imshow(I_rgb);                  %显示原图
title('原始图像');
电脑声音设置%将彩色图像从RGB转化到lab彩色空间
C = makecform('srgb2lab');      %设置转换格式
I_lab = applycform(I_rgb, C);
%进行K-mean聚类将图像分割成3个区域
ab = double(I_lab(:,:,2:3));    %取出lab空间的a分量和b分量
nrows = size(ab,1);
ncols = size(ab,2);
ab = reshape(ab,nrows*ncols,2);
nColors = 3;        %分割的区域个数为3
[cluster_idx cluster_center] = kmeans(ab,nColors,'distance','sqEuclidean','Replicates',3);  %重复聚类3次
pixel_labels = reshape(cluster_idx,nrows,ncols);
figure();
imshow(pixel_labels,[]), title('聚类结果');请许我尘埃落定
%显示分割后的各个区域
gmented_images = cell(1,3);
rgb_label = repmat(pixel_labels,[1 1 3]);
for k = 1:nColors儿童增高食谱
    color = I_rgb;
    color(rgb_label ~= k) = 0;描写大自然的作文
    gmented_images{k} = color;
end
figure(),imshow(gmented_images{1}), title('分割结果——区域1');
figure(),imshow(gmented_images{2}), title('分割结果——区域2');
figure(),imshow(gmented_images{3}), title('分割结果——区域3');

本文发布于:2023-06-23 14:50:06,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1051411.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:分割   空间   区域   图像   用户   彩色   输入
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图