利用Matlab进行图像的数字化
1、编程实现不同采样数图像的显示效果;2、编程实现不同量化等级图像的显示效果;3、用手机或数码相机采集图像,并分别编程实现数字化。
·
本文章包含以下内容:
1、编程实现不同采样数图像的显示效果;
2、编程实现不同量化等级图像的显示效果;
3、用手机或数码相机采集图像,并分别编程实现数字化。
代码如下:(可全部放到 function U() 中)
function U()
clear;
clc;
img = imread('Cameraman.tif');
% 图像采样:
figure('Name', '图像采样'); %开一个标题为“图像采样”的窗口
for i = 1 : 6 % 6 副图像
subplot(2,3,i); % 共 2 行 3 列 第 i 个
% x,y由 1 每隔 2^(i-1) 个采样,之后显示
imshow(img(1:2^(i-1):end,1:2^(i-1):end));
str = num2str(2^(9-i)); % 计算图像采样大小后转为字符串,便于显示。
title(['图像(',str,'*',str,')']); %显示图像名称。
end
figure('Name', '图像量化'); %开一个标题为“图像量化”的窗口
j = [8,6,4,3,2,1];
for i = 1 : 6 % 6 副图像
subplot(2,3,i); % 共 2 行 3 列 第 i 个
c = 2^(8-j(i)); % 计算灰度减少值
if(i == 6)
% 如果是二值图像,直接以128为分界,为保证图像色调一致,不用255
imshow(uint8((img>=128)*128));
else
% 转为双精度后除以灰度减少值,再取整后乘以灰度减少值。
imshow(uint8(round(double(img)/c)*c));
end
str = num2str(2^(j(i))); % 计算图像量化级数后转为字符串,便于显示。
title([num2str(j(i)),'比特图像(',str,'级)']); %显示图像名称。
end
figure('Name', '琼枝玉树'); %开一个标题为“琼枝玉树”的窗口
img = imread('snow_bush.jpeg');
shuzihua(3,2,img); % 细节图,细采样,粗量化,
figure('Name', '白虹破空'); %开一个标题为“白虹破空”的窗口
img = imread('sky_plane.jpeg');
shuzihua(5,6,img); % 缓变图,粗采样,细量化,
% 数字化函数,cai 隔 2^cai行采样。
% 这里图片为 3648 *2736 所以 cai 取值为[0~9] 越小越好
% liang 量化比特数(8~1)越大越好
% img 数字化图片
function shuzihua(cai,liang,img)
subplot(2,2,1); % 共 2 行 2 列 第 1 个
imshow(img); %输出原图
title('原图'); %标签
img1 = rgb2gray(img); %RGB转化为灰度图像
subplot(2,2,2); % 共 2 行 2 列 第 2 个
imshow(img1); %输出灰度图像
title('灰度图像'); %标签
% 采样后的图像
img1 = img1(1:2^cai:end,1:2^cai:end);
subplot(2,2,3); % 共 2 行 2 列 第 3 个
imshow(img1); %输出采样后图像
title(['采样后图像',num2str(size(img1))]); %标签
% 量化后的图像
c = 2^(8-liang); % 计算灰度减少值
if(liang == 6)
% 如果是二值图像,直接以128为分界,为保证图像色调一致,不用255
img = uint8((img>=128)*128);
else
img1 = uint8(round(double(img1)/c)*c);
end
subplot(2,2,4); % 共 2 行 2 列 第 4 个
imshow(img1); %输出量化后图像
title(['量化后图像',num2str(liang),'比特']); %标签
结果示例:
采样会影响图片的像素值,影响图片的清晰程度,量化会影响图片的色彩丰富程度。
理论上,采样点和量化等级越高,图像质量越高;
1.当量化级数一定时,采样点数减少时,图上的块状效应逐渐明显;
2.当采样点数一定时,量化级数越少,图像质量越差。
当限定数字图像的大小时,为了得到质量较好的图像,可采用如下原则:
1.对缓变得图像,应该细量化,粗采样,以避免出现假轮廓;
2.对细节丰富的图像,应细采样,粗量化,以避免模糊。
图片文件名可能需要更改,放置在程序同目录下
本文章所需的图片
更多推荐
已为社区贡献1条内容
所有评论(0)