matlab分割血管图片,MATLAB 图像处理《数字图像处理》作业不会做,谢哈!用MATLAB将一幅含有血管的医学图像进行处理,满足下面的要求:...

共回答了24个问题采纳率:95.8%

下边的程序是我自己编的希望能给你参考.其中的imhist是显示直方图的,如果你不用可以直接删去.我已经将程序里的图片地址写成了d:blood.jpg你将图片存在d盘,标明名字blood,注意类型为jpg即可.

1.1

显示更加清楚可以用直方图均衡化.

程序1:

%直方图均衡化,令对比度自适应直方图均衡化

I=imread('你的图片(注意要用英文的.比如'd:blood.jpg')');

I=rgb2gray(I);

J=adapthisteq(I);

subplot(221),imshow(I)

title('原图');

subplot(222),imshow(J)

title('直方图均衡化后的结果')

subplot(223),imhist(I,64)

title('原图的直方图');

subplot(224),imhist(J,64)

title('直方图均衡化后的结果的直方图');

1.2 让图片看清楚还可以让图片变亮一些(因为你这图看起来很暗).

程序2:

I=imread('d:blood.jpg');

J=imadjust(I,[],[0.5 1]);

%通过修改highout值使图片变亮

K=imadjust(I,[],[],0.3);

%通过修改r(描述I,J关系曲线形状)

subplot(231),imshow(I);

title('原图');

subplot(232),imshow(J);

title('修改highout');

subplot(233),imshow(K);

title('修改r值')

subplot(234),imhist(I,64);

title('原图的直方图');

subplot(235),imhist(J,64);

title('修改highout直方图');

subplot(236),imhist(K,64);

title('修改r值直方图');

2.1 边缘检测的有很多算子,你自己试试看哪个算子比较好.

程序3:

I=imread('d:blood.jpg');

figure,imshow(I);%显示原图

f= rgb2gray(I);%转化为灰度图

BW1=edge(f,'Roberts');%使用roberts算子进行边缘提取

figure;imshow(BW1); %显示边缘提取结果

BW2=edge(f,'sobel');%使用sobel算子进行边缘提取

figure;imshow(BW2);%显示边缘提取结果

BW3=edge(f,'prewitt');%使用prewitt算子进行边缘提取

figure;imshow(BW3);%显示边缘提取结果

BW4=edge(f,'log');%使用log算子进行边缘提取

figure;imshow(BW4);%显示边缘提取结果

BW5=edge(f,'canny');%使用canny算子进行边缘提取

figure;imshow(BW4);%显示边缘提取结果

1年前

1

你可能感兴趣的:(matlab分割血管图片)