数字图像处理 ostu图像分割和迭代式阈值

2018-12-10 15:40

(一) 用各梯度算子对图像进行边缘检测; 实现代码:

clc;

I=imread('flower.jpg');%读入灰度图像

I1=im2double(I); %将彩图序列变成双精度

f=rgb2gray(I1); %将彩色图变成灰色图

[L,R]=size (f);%图像大小 GR=f; GP=f; GS=f; for x=2:L-1 for y=2:R-1

GRx(x,y)=f(x,y)-f(x+1,y+1); GRy(x,y)=f(x,y+1)-f(x+1,y);

GR(x,y)=sqrt((GRx(x,y)).^2+(GRy(x,y)).^2);%roberts图像边缘提取

GPx(x,y)=(f(x-1,y+1)+f(x,y+1)+f(x+1,y+1))/3-(f(x-1,y-1)+f(x,y-1)+f(x+1,y-1))/3;

GPy(x,y)=(f(x-1,y-1)+f(x-1,y)+f(x-1,y+1))/3-(f(x+1,y-1)+f(x+1,y)+f(x+1,y+1))/3;

GP(x,y)=sqrt((GPx(x,y)).^2+(GPy(x,y)).^2);%prewitt图像边缘提取

GSx(x,y)=(f(x-1,y+1)+2*f(x,y+1)+f(x+1,y+1))/3-(f(x-1,y-1)+2*f(x,y-1)+f(x+1,y-1))/3;

GSy(x,y)=(f(x-1,y-1)+2*f(x-1,y)+f(x-1,y+1))/3-(f(x+1,y-1)+2*f(x+1,y)+f(x+1,y+1))/3;

GS(x,y)=sqrt((GSx(x,y)).^2+(GSy(x,y)).^2);%sobel图像边缘提取 end end

figure; %subplot(2,2,1); imshow(f,[]);title('原图象');

figure;%subplot(2,2,2);

imshow(GR,[]);title('Roberts算子边缘提取'); figure;%subplot(2,2,3);

imshow(GP,[]);title('Prewitt算子边缘提取'); figure;%subplot(2,2,4);

imshow(GS,[]);title('Sobel算子边缘提取');

(二) 利用直方图人工指定阈值对rice进行自动单阈值分割; 源代码:

oldbuf=imread('rice.tif'); subplot(2,2,1); imshow(oldbuf); title('原图像');

[M,N]=size(oldbuf);

sk = imhist(oldbuf); %直方图

up=max(sk);

%纵坐标最大值

subplot(2,2,2),imhist(oldbuf);axis([1 256 0 up]); %原直方图

title('原图像直方图'),ylabel('频数'); xlabel('灰度值'); fori=1:125 sk(i)=0; end

fori=126:M sk(i)=1; end fori=1:M for j=1:N

newbuf(i,j)=sk(oldbuf(i,j)); %映射 end; end

subplot(2,2,3);

imshow(newbuf); title('单阈值分割'); %单阈值分割 I=im2double(oldbuf); se=strel('disk',10);

%创建一个指定大小R平面disk形状的结构化元素。

ft=imtophat(I,se); Th=graythresh(ft);

G=im2bw(ft,Th); subplot(2,2,4); imshow(G);

title('局部阈值分割'); %局部阈值分割

(三) 用迭代法和OSTU法对rice进行自动单阈值分割; 源代码:clearall;closeall;clc; I=imread('coins.png');

J=im2double(I);%索引图像转换为灰度图像 T=graythresh(I);%获得阈值 J=im2bw(I,T);%图像分割 figure;

subplot(121);imshow(I);axis square;xlabel('a) 原图像');

subplot(122);imshow(J);axis square;xlabel('b) Ostu算法分割图像');

clearall;closeall;clc; I1=imread('cameraman.tif');

I=im2double(I1);%将图像灰度值由8位二进制转化为双精度 T0=0.01;%设置参数T0 T1=(min(I(:))+max(I(:)))/2; r1=find(I>T1); r2=find(I<=T1);

T2=(mean(I(r1))+mean(I(r2)))/2; while abs(T2-T1)

r1=find(I>T1); r2=find(I<=T1);

T2=(mean(I(r1))+mean(I(r2)))/2; end

J=im2bw(I,T2);%图像分割 figure;

subplot(121);imshow(I1);axis square;xlabel('a) 原图像');

subplot(122);imshow(J);axis square;xlabel('b) 迭代阈值算法分割图像');


数字图像处理 ostu图像分割和迭代式阈值.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:党员教师-个人整改方案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: