实验内容

1、读入一幅RGB图像(sunset.jpg),分别转换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示这三幅图像,注上文字标题,即“原图像”、“灰度图像”、“二值图像”。

a = imread("L:\图像处理\实验文件\sunset.jpg");

i = rgb2gray(a);

I = im2bw(a,0.5);

subplot(3,1,1);imshow(a);title('原图像');

subplot(3,1,2);imshow(i);title('灰度图像');

subplot(3,1,3);imshow(I);title('二值图像');

2、说明以下程序的显示结果为何是一幅几乎全黑的图像。

clear; close all;

myi=zeros(20,20);

myi(2:2:18,2:2:18)=1;

myi=uint8(myi);

figure, imshow(myi,'notruesize');

由程序myi=uint8 (myi) ;可知此程序编写的图像在计算机中采用的是8位存储,即灰度

值为0^255,其中0为黑,255为白,中间值为由黑向白过度的值。而程序myi=zeros(20,20);

构造了一个20行20列的0值矩阵,程序myi (2:2:18, 2:2:18)=1;将1赋值给矩阵的2, 4,

6,8,10,12,14,16,18行和2,4,6,8,10,12,14,16,18列,即这些位置的值为

1。因为0, 1都在人眼识别的黑色范围内,固图像是全黑的

3、阅读分析下列程序,对每条语句给出注释,运行并解释最终执行结果;若将for循环改为方框中的程序,有何不同?

clear all;close all;

I=imread('d:\lena512.jpg');导入图像

[height,width]=size(I); heightwidth赋值为该图像的参数值

figure;   控制画图的窗口

subplot(2,3,1); subplot(2,3,1)是指一个2行3列的图中从左到右从上到下的第一个位置。

imshow(I);  展示i图像

title('原图像');  标题

L=1;   定义L

for m=1:5    循环m的值,生成五幅图像

L=2*L;  L等于L*2

quartimage=zeros(ceil(height/L),ceil(width/L));

zeros是生成全零的矩阵函数M*Nceil函数将数值

取整

k=1;n=1;

for i=1:L:height 进行循环

for j=1:L:width

quartimage(k,n)=I(i,j); 将矩阵内的值进行修改

n=n+1;  n值加一

end

k=k+1;n=1;

end

subplot(2,3,m+1);  subplot(2,3,1)是指一个2行3列的图中从左到右从上到下的第一个位置。

imshow(uint8(quartimage)); 展示uint8格式的quatimage图像

end

for m=1:5

L=2*L;

quartimage=I(1:L:height,1:L:width);

subplot(2,3,m+1);

imshow(uint8(quartimage));

end

因为使用for m=1:5  ,所以会循环5次循环内的条件,5次循环修改矩阵内的值,并展示图像,加上初试图像,所以共有6幅图像。

若改成框内程序,直接修改原图像的值,然后输出图像。

5、改变灰度图像的灰度分辨率(256颜色-128颜色-64颜色-32颜色-16颜色-8颜色-4颜色-2颜色),给出实验结果;图像大小不变的情况下,仿真改变图像的空间分辨率(变为原来的1/4(例如原图像(1,1);(1,2);(2,1);(2,2)四个像素值设成相同的值);1/16),给出实验结果。

分辨率变换:

close all;clear all;clc;

%通过imadjust()函数调整灰度图像的灰度范围

I=imread("L:\图像处理\实验文件\orangutan.tif");  

for i=1:7

    J=I(1:2^i:end,1:2^i:end);

    figure;

    subplot(2,1,1);imshow(I);title('原图')

    subplot(2,1,2);imshow(J);title('8bits 变换');

end

 

 

 

不改变大小改变空间分辨率

clc;close all;

image = imread("L:\图像处理\实验文件\orangutan.tif");   %代表要处理的图像

mysize = size(image);

%把图像转换成灰度图

if numel(mysize) > 2

    image = rgb2gray(image);

end

r_e = mysize(1);

c_e = mysize(2);

subplot(2,1,1); imshow(image,[]); title('Input Image');

temp1 = imresize(image,0.25); %表示把图像缩小到原来的1/4,但同时图像矩阵也变成了原来的1/4

[r_t2,c_t2] = size(temp1);

temp2 = zeros(r_e,c_e);

temp2(round(r_e/2)-floor(r_t2/2) : round(r_e/2)+ceil(r_t2/2)-1, round(c_e/2)-floor(c_t2/2) : round(c_e/2)+ceil(c_t2/2)-1) = temp1;%固定写法,具体了解matlab,调整大小

ss = temp2;

subplot(2,1,2); imshow(ss,[]); title('Minification');

实验一 MATLAB数字图像处理基本操作相关推荐

  1. matlab空域滤波,MATLAB数字图像处理基本操作及空域滤波

    MATLAB数字图像处理基本操作及空域滤波 实验一 MATLAB 数字图像处理基本操作及空域滤波实验目的1.了解有关数字图像处理的基本概念,熟悉Matlab软件中关于数字图像处理的基本命令,掌握利用M ...

  2. 实验1 matlab图像处理初步,实验一 MATLAB数字图像处理初步

    实验一 MATLAB数字图像处理初步 一.实验目的 1.熟悉及掌握在MATLAB中能够处理哪些格式图像. 2.熟练掌握在MATLAB中读取图像,并获取图像的大小.颜色.高度.宽度等等相关信息. 3.掌 ...

  3. 利用matlab输入一个数再取反,实验一 MATLAB数字图像处理初步

    实验一 MATLAB数字图像处理初步 一.实验目的 1.了解Matlab的基本功能及操作方法 2.熟练掌握图像读写和显示函数的使用方法 3.掌握Matlab支持的图像的显示方法(灰度.索引.黑白.彩色 ...

  4. matlab 图像读取默认值,实验一MATLAB数字图像处理

    昆明理工大学信息工程与自动化学院学生实验报告 ( 2012 -2013 学年第二学期) 课程名称:图形图像处理开课实验室:信自444 2013年 5月 22日 一.实验目的与要求 1.熟悉及掌握在MA ...

  5. MATLAB数字图像处理系统[多功能]

    MATLAB数字图像处理系统[多功能] 目录 实验一 MATLAB数字图像处理初步 实验二 图像的代数运算 实验三 图像增强-空间滤波 实验四 图像分割 2 实验一 MATLAB数字图像处理初步 一. ...

  6. matlab图像处理初步,MATLAB数字图像处理初步

    实验一MATLAB数字图像处理初步 一.实验目的 1.熟悉及掌握在MATLAB中能够处理哪些格式图像.(五号宋体) 2.熟练掌握在MA TLAB中如何读取图像. 3.掌握如何利用MATLAB来获取图像 ...

  7. 计算机图像处理实验报告四西南大学,计算机图像处理实验报告(数字图像处理基本操作)...

    西南大学 工程技术学院学生实验报告 课程名称: 计算机图像处理 实验名称: 实验一 数字图像处理基本操作 一.实验目的 (1)掌握MATLAB软件的运用,熟练掌握建立.保存.运行.调试m文件的方法. ...

  8. 数字图像处理matlab实验对图像复原,数字图像处理实验07图像的复原处理

    数字图像处理实验 一.数字图像处理实验 实验七 图像的复原处理 一.实验目的 熟悉几种在实际应用中比较重要的图像复原技术,学会用MATLAB复原函数对退化图像进行复原处理. 二.实验内容 1.用点扩散 ...

  9. matlab数字图像处理课程设计报告,数字图像处理初步-实验1

    MATLAB数字图像处理初步 通过实验对MatLab软件的基本使用基本的了解,学会使用MatLab软件来读取一个特定格式的图像,并通过相关的命令语句对图像进行格式转换.图像压缩.二值化等的处理,掌握利 ...

  10. MATLAB 数字图像处理GUI二值图像实验

    电信19-2 翁大弟 摘要 图像信息是人类获取信息的重要来源及利用信息的重要手段,数字图像处理的产生和迅速发展主要受三个因素的影响:一是计算机的发展:二是广泛的农牧业.环境.军事.工业等方面的应用需求 ...

最新文章

  1. 华为mate30会用鸿蒙嘛,华为Mate30安卓系统再遭限制,鸿蒙系统真的要应战了
  2. Ubunt pip升级到指定版本
  3. 【数据结构基础】-线性表的顺序实现(数组实现)基本操作
  4. springboot 集成mybatis_SpringBoot快速集成Mybatis并轻松上手调试教程,请查收!
  5. python_day24_class_类_继承
  6. oracle会计事件,新的一年打开会计期发生错误
  7. LeetCode 11盛水最多的容器
  8. oracle数据库执行sql很慢
  9. 用函数调用的方法输出乘法口诀表
  10. Disease Ontology:人类疾病分类数据库
  11. 第58章、拍照功能实现(从零开始学Android)
  12. 用当下的力量共创未来——2017(第十五届)中国互联网经济论坛盛典
  13. 关于Redmi显示器(1A 23.8英寸)的亮度如何调节
  14. signature=81fb62f1a0834af294367966aafd9f63,Stability region of K
  15. Ubuntu 录制视频并制作成gif图
  16. 公司挖来一个阿里Java大神,生产环境故障调优很溜
  17. 写给朝九晚五的上班族的一封信(转)
  18. java如何输出大小不同的字_Eclipse下中英文字体大小不一致,如何解决
  19. Network in Network(NIN)网络结构详解,网络搭建
  20. Dimension类

热门文章

  1. LSTM matlab实现
  2. Python+Tensorflow+CNN实现车牌识别
  3. MAPGIS做图指导
  4. 也谈USB重定向的方式
  5. win7小工具打不开_有了这个工具,小白也能设置一键网络共享文件夹与打印机...
  6. 漫城cms免费漫画+小说cms系统
  7. 【更新中…】Latex语法总结
  8. 支持单个生成的DM码制作工具(测试)
  9. 分布式电源选址定容与优化配置MATLAB程序基于多目标粒子群算法
  10. Infopath入门到精通系列-1 Infopath文件说明