用MATLAB,任意选择一个图片作为处理对象,自由使用图像处理工具进行处理,得出一定成果,并介绍使用到的函数或者算法。
这个比较简单是把图像进行灰度图像化,并用底层算法获取灰度图像直方图的:
matlab代码:
close all; clear;
%% 选择一个图像作为处理对象
[imgfilename imgpathname]=uigetfile({'.jpg;.png;.tiff;.tif;*.bmp'},'Select a RGB image');
if imgfilename
I=imread([imgpathname '' imgfilename]);
end
%% 获取灰度图像
I2=rgb2gray(I); %用到rgb2gray函数将 RGB 图像转换为灰度图像
%% 手写算法获取灰度图像直方图
r= size(I2, 1); %获取直方图的高
c= size(I2, 2); %获取直方图的宽
N = zeros(1, 256); %建立全零矩阵放置灰度映射表,灰度范围在0-255之间
for i = 1:r
for j = 1:c %遍历每个像素点
k = I2(i, j); %获取像素灰度值
N(k+1) = N(k+1) + 1; %统计灰度值出现次数
end
end
subplot(1,2,1), imshow(I2);
subplot(1,2,2), bar(N); %用bar函数输出直方图
结果:
最简单的可以进行黑白化,用阀值控制像素点是显示黑色或者白色。
类似的还有灰度化、反相化等等。