利用Matlab进行图像的数字化
本文章包含以下内容:
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为分界,为保证图像色调一致,不用255imshow(uint8((img>=128)*128));else% 转为双精度后除以灰度减少值,再取整后乘以灰度减少值。imshow(uint8(round(double(img)/c)*c));endstr = 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为分界,为保证图像色调一致,不用255img = uint8((img>=128)*128);elseimg1 = uint8(round(double(img1)/c)*c);endsubplot(2,2,4); % 共 2 行 2 列 第 4 个imshow(img1); %输出量化后图像title(['量化后图像',num2str(liang),'比特']); %标签
结果示例:
采样会影响图片的像素值,影响图片的清晰程度,量化会影响图片的色彩丰富程度。
理论上,采样点和量化等级越高,图像质量越高;
1.当量化级数一定时,采样点数减少时,图上的块状效应逐渐明显;
2.当采样点数一定时,量化级数越少,图像质量越差。
当限定数字图像的大小时,为了得到质量较好的图像,可采用如下原则:
1.对缓变得图像,应该细量化,粗采样,以避免出现假轮廓;
2.对细节丰富的图像,应细采样,粗量化,以避免模糊。
图片文件名可能需要更改,放置在程序同目录下
本文章所需的图片
利用Matlab进行图像的数字化相关推荐
- matlab对图像进行增强,利用matlab对图像进行增强处理.doc
利用matlab对图像进行增强处理.doc 郑州轻工业学院课程设计任务书题目利用MATLAB对图像进行增强处理专业.班级电子信息工程07级学号姓名主要内容.基本要求.主要参考资料等:主要内容:在图像形 ...
- matlab 读取照片imread,利用matlab读取图像
怎样用matlab读取20张图片并依次展示出来 指定路径下 单个文件夹data中所有图像 P = '.\data\';% 图像文件夹路径 img_path_list = dir(strcat(P,'* ...
- 怎么用matlab读一张图像,利用matlab读取图像
怎样用matlab读取20张图片并依次展示出来 指定路径下 单个文件夹data中所有图像 P = '.\data\';% 图像文件夹路径 img_path_list = dir(strcat(P,'* ...
- 第四周作业:利用matlab制作图像的二值模板并分别利用模板进行“与模板相与”、“与模板相或”、“与模板异或”操作
文章目录 第四周作业 第一题 第二题 第四周作业 第一题 题目: 利用 MATLAB 编程,打开自己的一张照片,依次完成下列要求: 1) 以照片的自己作为目标,制作二值模板 2) 分别利用模板进行&q ...
- 利用Matlab进行图像的编码与压缩(仿照jpeg)
本文章包含以下内容: 1.选择matlab自带图像cameraman.tif和westconcordorthophoto.png为编码压缩的测试图像. 2.根据设计要求选择图像编码和压缩方法: 3.设 ...
- 利用Matlab进行图像的增强
本文章包含以下内容: 1.图像灰度修正.测试图像pout.tif.tire.tif.读入灰度级分布不协调的图像,分析其直方图.根据直方图设计灰度变换表达式,调整表达式的参数,直到显示图像的直方图均衡为 ...
- 利用Matlab进行图像的复原
本文章包含以下内容: 1.用点扩散(PSF)函数创建运动模糊图像,修改参数改变模糊程度. a) 无噪声运动模糊图像 b) 有噪声运动模糊图像 2.用维纳滤波复原函数deconvwnr 对模糊图像进行复 ...
- 利用 MATLAB 彩色显示高光谱图像(伪彩色,真彩色)
利用 MATLAB 彩色显示高光谱图像(伪彩色,真彩色) 前言 一.使用imshow函数彩色显示高光谱图像 注意事项: 欢迎学习交流! 邮箱: z-@1-6.com 网站: https://zephy ...
- matlabrobert锐化_基于Matlab的图像锐化的研究
杨虹++吴萌 摘要:在图像处理时,常常需要对图像进行平滑,但是平滑后图像的轮廓往往变的有些模糊,为了改变这一影响,需要对图像进行锐化处理,使图像边缘信息呈现出来.对几种图像锐化的方法进行研究,并且对S ...
最新文章
- D2 第11届前端技术论坛记录
- 1007 素数对猜想 (20 分)(c语言)
- NLP预训练之路——从word2vec, ELMo到BERT
- 查找排序数组的最小值(js)
- python2048小游戏程序设计大作业_C语言大作业报告——2048小游戏程序
- Eclipse离线安装Emmet插件----web开发者绝对熟悉的插件之一
- 华为否认窃密;贾跃亭陪许家印考察FF;谷歌或被罚95亿欧元 | 极客头条
- laravel如何利用数据库的形式发送通知
- 致未来要跟我领小红本的男人
- DIOCP之DEMO-登陆验证设计(二)
- asyncawait的前世今生
- 独孤木专栏Delayed Project(中) (转)
- CTFHUB中的文件上传——文件头检查
- PG+POSTGIS地图空间位置网格聚合算法
- CSS绘制三角形图标
- ISO26262第二版发布
- 短音频识别(一句话识别)接口设计方案
- spark任务运行源码
- 如何快速查看Linux系统上的Shell类型
- linux发音,官方标准