博客网 加入收藏  -  设为首页
您的位置:博客网 > 职场 > 正文
用MATLAB对彩色图片分割的程序?急求!
用MATLAB对彩色图片分割的程序?急求!
提示:

用MATLAB对彩色图片分割的程序?急求!

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('聚类结果');


%显示分割后的各个区域
segmented_images = cell(1,3);
rgb_label = repmat(pixel_labels,[1 1 3]);

for k = 1:nColors
color = I_rgb;
color(rgb_label ~= k) = 0;
segmented_images{k} = color;
end

figure(),imshow(segmented_images{1}), title('分割结果——区域1');
figure(),imshow(segmented_images{2}), title('分割结果——区域2');
figure(),imshow(segmented_images{3}), title('分割结果——区域3');

图像分割是由什么到什么的关键步骤
提示:

图像分割是由什么到什么的关键步骤

图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤。图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤。现有的图像分割方法主要分以下几类:基于阈值的分割方法、基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法等。从数学角度来看,图像分割是将数字图像划分成互不相交的区域的过程。图像分割的过程也是一个标记过程,即把属于同一区域的像素赋予相同的编号。

图像分割技术有哪些应用
提示:

图像分割技术有哪些应用

图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。那么,图像分割技术有哪些应用呢?

1、 机器视觉。

2、 人脸识别。

3、 指纹识别。

4、 交通控制系统。

5、 在卫星图像中定位物体(道路、森林等)。

6、 行人检测。

7、 医学影像。

关于图像分割技术有哪些应用的相关内容就介绍到这里了。