matlab灰度图像的线性变换程序
怎么推导线性灰度变换?
怎么推导线性灰度变换?
I rgb2gray(RGB);Matlab函数rgb2gray,函数功能:将真彩色图像转换为灰度图像。在matlab命令窗口中键入doc rgb2gray或help rgb2gray可以获得更多关于该函数的帮助信息。调用方式:I rgb2gray(RGB)将真彩色RGB图像转换成灰度图像。(RGB并不发生变化)newmap rgb2gray(map)返回一个灰度调色板。以下是这个函数的实例:%
1. 显示RGB真彩色图像imgrgb imread()figure(Name, 显示真彩色图像)imshow(imgrgb)%
2. 显示灰度图像imggray rgb2gray(imgrgb)figure(Name, 显示灰度图像)imshow(imggray)
rgb2gray函数怎么用?
在matlab中,rgb2gray函数的作用是将彩色rgb影像转化为单波段灰度影像,表达式是rgb2gray(x),x表示要转换的彩色影像。
imerode函数的作用?
在matlab定义里面,这两个函数本来就是能够作用于灰度图像的,看帮助文件你也能看到
作用与灰度图的例子
当然,膨胀和腐蚀多用于处理二值图像
先把输入的图像二值化成为二值图像,在用这两个函数就可以了
灰度图像找到最佳阈值转换为二值图像的MATLAB程序?
给你提供2种方法,一种是直方图阈值法;一种是最大类间方差
1、直方图阈值法
用MATLAB实现直方图阈值法:
Iimread();
I1rgb2gray(I);
figure;
subplot(2,2,1);
imshow(I1);
title(灰度图像)
axis([50,250,50,200]);
gridon;%显示网格线
axison;%显示坐标系
[m,n]size(I1);%测量图像尺寸参数
GPzeros(1,256);%预创建存放灰度出现概率的向量
fork0:255
GP(k 1)length(find(I1k))/(m*n);%计算每级灰度出现的概率,将其存入GP中相应位置
end
subplot(2,2,2),bar(0:255,GP,g)%绘制直方图
title(灰度直方图)
xlabel(灰度值)
ylabel(出现概率)
I2im2bw(I,150/255);
subplot(2,2,3),imshow(I2);
title(阈值150的分割图像)
axis([50,250,50,200]);
gridon;%显示网格线
axison;%显示坐标系
I3im2bw(I,200/255);%
subplot(2,2,4),imshow(I3);
title(阈值200的分割图像)
axis([50,250,50,200]);
gridon;%显示网格线
axison;%显示坐标系
2、自动阈值法:Otsu法
用MATLAB实现Otsu算法:
clc
clearall
Iimread();
subplot(1,2,1),imshow(I);
title(原始图像)
axis([50,250,50,200]);
gridon;%显示网格线
axison;%显示坐标系
levelgraythresh(I);%确定灰度阈值
BWim2bw(I,level);
subplot(1,2,2),imshow(BW);
title(Otsu法阈值分割图像)
axis([50,250,50,200]);
gridon;%显示网格线
axison;%显示坐标系