1、读取彩色图像Warrior.jpg,将其转换为灰度图像,查看它的直方图, 请编程实现。
代码如下:
% 读取彩色图像
img = imread('Warrior.jpg');
% 转换为灰度图像
gray_img = rgb2gray(img);
% 显示灰度图像
imshow(gray_img);
% 计算直方图
histogram = imhist(gray_img);
% 显示直方图
figure;
plot(histogram);

2.读取彩色图像Warrior.jpg, 将其转换为灰度图像和二值图像, 在同一个窗口内分成三个子窗口分别显示彩色图像、灰度图像和二值图像, 标注文字标题, 请编程实现。
代码如下:
% 读取彩色图像
color_img = imread('Warrior.jpg');
% 转换为灰度图像
gray_img = rgb2gray(color_img);
% 转换为二值图像
threshold = graythresh(gray_img);
binary_img = imbinarize(gray_img, threshold);
% 创建一个窗口
figure('Name', '颜色、灰度、二值图像', 'NumberTitle', 'off');
% 分成三个子窗口,并显示对应的图像
subplot(1, 3, 1);
imshow(color_img);
title('彩色图像');
subplot(1, 3, 2);
imshow(gray_img);
title('灰度图像');
subplot(1, 3, 3);
imshow(binary_img);
title('二值图像');

3.读取彩色图像:胸片.jpg,分别对其进行平移、放大1.5倍 、缩小0.5倍、水平镜像、垂直镜像、旋转90度等操作,请编程实现。
代码如下:
% 读取彩色图像
img = imread('胸片.jpg');
% 平移
translated_img = imtranslate(img, [50, 50]);
% 放大1.5倍
scaled_img = imresize(img, 1.5);
% 缩小0.5倍
resized_img = imresize(img, 0.5);
% 水平镜像
hflipped_img = flip(img, 2);
% 垂直镜像
vflipped_img = flip(img, 1);
% 旋转90度
rotated_img = imrotate(img, 90);
% 显示变换后的图像
figure;
subplot(2, 4, 1), imshow(img), title('原始图像');
subplot(2, 4, 2), imshow(translated_img), title('平移');
subplot(2, 4, 3), imshow(scaled_img), title('放大1.5倍');
subplot(2, 4, 4), imshow(resized_img), title('缩小0.5倍');
subplot(2, 4, 5), imshow(hflipped_img), title('水平镜像');
subplot(2, 4, 6), imshow(vflipped_img), title('垂直镜像');
subplot(2, 4, 7), imshow(rotated_img), title('旋转90度');

4.读取两幅不同彩色图像:flower.jpg和pattern.jpg,对这两幅图像分别执行加、减、乘、除操作, 在同一个窗口内分成五个子窗口分别显示, 标注文字标题,请编程实现。
代码如下:
% 读取两幅彩色图像
img1 = imread('flower.jpg');
img2 = imread('pattern.jpg');
% 加、减、乘、除操作
add_img = imadd(img1, img2);
sub_img = imsubtract(img1, img2);
mul_img = immultiply(img1, img2);
div_img = imdivide(img1, img2);
% 显示变换后的图像
figure('Name', '彩色图像加减乘除', 'NumberTitle', 'off');
subplot(2, 3, 1), imshow(img1), title('flower.jpg');
subplot(2, 3, 2), imshow(img2), title('pattern.jpg');
subplot(2, 3, 3), imshow(add_img), title('加操作');
subplot(2, 3, 4), imshow(sub_img), title('减操作');
subplot(2, 3, 5), imshow(mul_img), title('乘操作');
subplot(2, 3, 6), imshow(div_img), title('除操作');

四、实验心得
MATLAB数字图像处理是目前常见的一种数学软件工具,在科学研究、工程实践、医学影像等领域非常常见。学习除了基础知识,更加需要对实践的掌握。在我个人的学习过程中,我总结了以下几点心得体会。
首先,需要了解MATLAB数字图像处理的基本概念。数字图像是由像素组成的,每个像素代表图像上的一个点,其数值表示该点的颜色或亮度。数学上可以表示为矩阵或数组形式,其中每个元素对应一个像素点。还需要了解图像的色彩空间、亮度、对比度等基本概念,从而更好地理解数字图像处理的方法和实现方式。
本次实验也初步学习了MATLAB的使用,感受其在图像处理上的便捷,希望在之后可以进行更多的实践和练习。从而加深对数字图像处理方法的理解和掌握。
我在本课程上收获良多。
本文介绍了使用MATLAB进行数字图像处理的初步实验,包括将彩色图像转换为灰度和二值图像,进行平移、缩放、翻转和旋转等变换,以及对两幅图像执行加减乘除操作。实验强调了MATLAB在图像处理中的应用及其对基本概念的理解,如像素、色彩空间和图像变换。
200

被折叠的 条评论
为什么被折叠?



