Digital Image Processing
1. Reducing the Number of Gray Levels in an Image
减少图像中的灰度级别的数量
(a)编写一个计算机程序,能够将图像中的灰度数从256减少到2,整数幂为2。所需的灰度级别的数量需要是程序的可变输入。
(b)下载图。2.21(a),并复制图中所示的结果。
matlab代码:
function ex_1(gray_level)
% 改变图像的灰度级
% 此处显示详细说明
% gary_level是输入的参数,代表着目标灰度级
% I为输入图片
% transI为输出图片
% reduce为减小的倍数
clc;
%%
%打开图片
[file,path] = uigetfile('*.*');%将返回文件的名称和路径。如果用户点击取消或窗口关闭按钮 (X),uigetfile 将为两个输出参数都返回 0
if isequal(file,0)
disp('User selected Cancel');
else
disp(['User selected ', fullfile(path,file)]);
end
filep=strcat(path,file);%将路径和图片名连接
I=imread(filep);%打开图片
%%
%改变灰度级别
reduce=256/gray_level;
transI=uint8(fix(double(I)/reduce)*255/(gray_level-1));
%%
%输出原图
figure%幕布
subplot(1,2,1)
imshow(I)
title('原图')
%%
%输出灰度图
subplot(1,2,2)
imshow(transI)
title(['当前灰度级 ',num2str(gray_level)])
end
对于该代码的几点说明:
1.创建:该代码是一个函数:应在matlab中 新建——>函数,然后写在这个里面
2.运行:在命令行窗口输入函数名+函数的参数
学弟学妹们加油啊!!!
数字图像处理要好好学,有没有上dragon fly 老师的课的UU??
参考书: