实验一 MATLAB \ Python数字图像处理初步

07-09 1958阅读

一、实验目的:

1.熟悉及掌握在MATLAB\Python中能够处理哪些格式图像。

2.熟练掌握在MATLAB\Python中如何读取图像。

3.掌握如何利用MATLAB\Python来获取图像的大小、颜色、高度、宽度等等相关信息。

4.掌握如何在MATLAB\Python中按照指定要求存储一幅图像的方法。

二、实验内容:

熟悉相关图像数值计算软件环境,以及相关基本操作。

1.利用imread()函数读取一幅图像,假设其名为flower.tif,存入一个数组中;

2.利用whos 命令提取该读入图像flower.tif的基本信息;

3.利用imshow()函数来显示这幅图像;

4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息;

5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件,设为flower.jpg;语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。

6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flower.bmp。

7.用imread()读入图像:Lenna.jpg 和cameraman.jpg;

8.用imfinfo()获取图像Lenna.jpg和cameraman.jpg 的大小;

9.用figure,imshow()分别将Lenna.jpg和cameraman.jpg显示出来,观察两幅图像的质量。

10.用im2bw将一幅灰度图像转化为二值图像,并且用imshow显示出来观察图像的特征。

11.将每一步的函数执行语句拷贝下来,写入实验报告,并且将相应结果截图拷贝下来。

三、实验程序、实验结果与实验分析:

1.实验程序:

(1)脚本Test1_1实现了步骤1-6,程序代码如下:

a=imread('flower.tif');
whos a
imshow(a)
imfinfo('flower.tif')
imwrite(a,'flower.jpg','quality',10);
imwrite(a,'flower.bmp');

(2)脚本Test1_2实现了步骤7-11,程序代码如下:

b=imread('Lenna.jpg');
c=imread('cameraman.jpg');
info1 = imfinfo('Lenna.jpg');
size1 = [info1.Height, info1.Width];
info2 = imfinfo('cameraman.jpg');
size2 = [info2.Height, info2.Width];
figure;
imshow(b);
title('Lenna.jpg');
figure;
imshow(c);
title('cameraman.jpg');
grayImg=rgb2gray(b);
threshold = graythresh(grayImg);
binaryImg = im2bw(grayImg, threshold);
figure;
subplot(1, 2, 1);
imshow(grayImg);
title('原始灰度图像');
subplot(1, 2, 2);
imshow(binaryImg);
title('转换后的二值图像');

2.实验结果:

(1)脚本Test1_1实验结果(步骤1-6):

①提取该读入图像flower.tif的基本信息

实验一 MATLAB \ Python数字图像处理初步

②显示图像flower.tif

实验一 MATLAB \ Python数字图像处理初步

③利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息

实验一 MATLAB \ Python数字图像处理初步

④将图象保存为一幅压缩了像素的jpg文件

实验一 MATLAB \ Python数字图像处理初步

⑤将flower.tif图象另存为bmp图像

实验一 MATLAB \ Python数字图像处理初步

(2)脚本Test1_2实验结果(步骤7-11):

①获取图像Lenna.jpg和cameraman.jpg 的大小

实验一 MATLAB \ Python数字图像处理初步

②分别将Lenna.jpg和cameraman.jpg显示出来

实验一 MATLAB \ Python数字图像处理初步

③将灰度图像转化为二值图像

实验一 MATLAB \ Python数字图像处理初步

3.实验分析

(1)脚本Test1_1实验分析(步骤1-6):

        1.利用imread()函数读取图像flower.tif,存入数组中;
       a=imread('flower.tif');
        2.利用whos 命令提取图像flower.tif的基本信息;
       whos a
        3.利用imshow()函数来显示这幅图像;
       imshow(a)
        4.利用imfinfo函数来获取图像的压缩,颜色等等其他的详细信息;
       imfinfo('flower.tif')
        5.利用imwrite()函数来压缩这幅图象,将其保存为jpg文件,设为flower.jpg;此处 q取10。
       imwrite(a,'flower.jpg','quality',10);
        6.利用imwrite()函数将最初的图像flower.tif另存为bmp图像,设为flower.bmp。
       imwrite(a,'flower.bmp');
(2)脚本Test1_2实验分析(步骤7-11):
        1.用imread()读入图像:Lenna.jpg 和cameraman.jpg;
       b=imread('Lenna.jpg');
       c=imread('cameraman.jpg');
        2.用imfinfo()获取图像Lenna.jpg和cameraman.jpg 的大小;
       info1 = imfinfo('Lenna.jpg');
       size1 = [info1.Height, info1.Width];
       info2 = imfinfo('cameraman.jpg');
       size2 = [info2.Height, info2.Width];
        3.用figure,imshow()分别将Lenna.jpg和cameraman.jpg显示出来,观察两幅图像的质量。
       figure;
       imshow(b);
       title('Lenna.jpg');
       figure;
       imshow(c);
       title('cameraman.jpg');
4.用im2bw将一幅灰度图像转化为二值图像,并且用imshow显示出来观察图像的特征。使用subplot函数,使得转换前后的图像显示在一个窗口。
      threshold = graythresh(grayImg);
      binaryImg = im2bw(grayImg, threshold);
      figure;
      subplot(1, 2, 1);
      imshow(grayImg);
      title('原始灰度图像');
      subplot(1, 2, 2);
      imshow(binaryImg);
      title('转换后的二值图像');

四、思考题

1  简述MATLAB软件/Python语言的特点。

答:MATLAB使用矩阵和向量来表示数据,这使得它在矩阵计算和线性代数方面表现出色。此外,MATLAB的语法简洁且易于学习,适用于各种科学计算和数据分析领域,如信号处理、图像处理、控制系统、通信系统、金融分析和机器学习等。

2  MATLAB软件/Python语言可以支持哪些图像文件格式?

答:在MATLAB中,常见的支持格式包括BMP、JPG、PNG、TIFF等。同样,Python也支持这些格式,并且由于它拥有大量的第三方库,如PIL(Python Imaging Library)或OpenCV,它还可以支持更多的图像格式。这些库使得Python在图像处理方面有着强大的功能。

3 说明函数imread 的用途格式以及各种格式所得到图像的性质。

答:函数imread主要用于读取图像文件。在MATLAB中,你可以使用imread函数读取各种格式的图像文件,如BMP、JPG等。读取的图像数据会存储在一个数组中,数组的维度和类型取决于图像的尺寸和颜色模式。例如,灰度图像会存储为一个二维数组,而彩色图像则可能存储为一个三维数组,其中第三维表示颜色通道。对于JPG格式的图像,由于它采用有损压缩算法,读取的图像可能在某些细节上与原始图像有所差异。而BMP格式作为无压缩位图,读取的图像将保持原始数据。

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]