南邮-《数字图像处理》-实验一

发布时间:2024年01月01日

实验一

实验题目

Matlab Exercises and Image Fundamentals

  1. Matlab exercises.
    a) Create a matrix A, any size and shape you want, and fill it with arbitrary values.
    Compute

    ATA
    and

AAT
. The results should be square, symmetric matrices.
b) Write a Matlab program to produce the first 30 Fibonacci numbers.

  1. It is often useful to generate a synthetic image with known properties that can be used
    to test algorithms. Generate an image composed of two concentric circles as shown
    below. The inner circle should have a radius of 50 pixels and a mean value of 192.
    The outer circle should have a radius of 100 pixels and a mean value of 128. The
    background should have a mean value of 64. Add uniform random noise to each pixel
    in the range -16 … +16 (see Matlab’s rand function). Save the image in “tif” format,
    and make sure the saved image looks correct. Turn in the Matlab program and the
    image that you generated.
    (Hint: recall the equation of a circle: x^2 + y^2 = r^2. These are the points on the
    circle border; to represent points inside the circle, you would you use an inequality.)

实验目的

本实验的目的是通过Matlab编程和图像基础知识,进行实验练习。

实验分析

在这个实验中,我们将学习如何使用Matlab生成矩阵,计算矩阵的乘积,以及生成具有已知属性的合成图像。

实验过程

在第一部分的Matlab练习中,我们将创建一个任意大小和形状的矩阵A,并填充它的任意值。然后,我们将计算ATA和AAT,并验证结果是否为方阵和对称矩阵。接下来,我们将编写一个Matlab程序来生成前30个斐波那契数。

% 创建一个任意大小和形状的矩阵A,并填充它的任意值
A = rand(3,4); % 生成一个3×4的随机矩阵
disp(A); % 显示矩阵A

% 计算A^TA和A A^T,并验证结果是否为方阵和对称矩阵
B = A' * A; % 计算A^TA
C = A * A'; % 计算A A^T
disp(B); % 显示矩阵B
disp(C); % 显示矩阵C
disp(size(B,1) == size(B,2)); % 检查B是否为方阵
disp(size(C,1) == size(C,2)); % 检查C是否为方阵
disp(isequal(B, B')); % 检查B是否为对称矩阵
disp(isequal(C, C')); % 检查C是否为对称矩阵

% 编写一个Matlab程序来生成前30个斐波那契数
F = zeros(1,30); % 初始化一个包含30个零的向量
F(1) = 1; % 设置第一个斐波那契数为1
F(2) = 1; % 设置第二个斐波那契数为1
for i = 3:30 % 从第三个开始循环
F(i) = F(i-1) + F(i-2); % 计算第i个斐波那契数
end
disp(F); % 显示斐波那契数列
  • 输出结果
    在这里插入图片描述
    在这里插入图片描述

在第二部分的图像生成实验中,我们将生成一个由两个同心圆组成的图像。内圆的半径为50像素,平均值为192。外圆的半径为100像素,平均值为128。背景的平均值为64。我们还需要为每个像素添加在-16到+16范围内的均匀随机噪声,并将图像保存为“tif”格式。我们需要确保保存的图像看起来正确。

% Define the image size and the circle radii
M = 256; % Image height
N = 256; % Image width
r1 = 50; % Inner circle radius
r2 = 100; % Outer circle radius

% Create a coordinate grid
[x, y] = meshgrid(1:N, 1:M);

% Calculate the distance from the center
d = sqrt((x - N/2).^2 + (y - M/2).^2);

% Assign the mean values according to the distance
I = zeros(M, N); % Initialize the image
I(d <= r1) = 192; % Inner circle
I(d > r1 & d <= r2) = 128; % Outer circle
I(d > r2) = 64; % Background

% Add uniform random noise in the range -16 .. +16
noise = rand(M, N) * 32 - 16; % Noise matrix
I = I + noise; % Noisy image

% Display the image
figure;
imshow(I, []);
title('Synthetic Image');

% Save the image in tif format
imwrite(I, 'SyntheticImage.tif');
% 生成一个由两个同心圆组成的图像
% 定义圆的半径和平均值
r1 = 50; % 内圆的半径
r2 = 100; % 外圆的半径
m1 = 192; % 内圆的平均值
m2 = 128; % 外圆的平均值
m3 = 64; % 背景的平均值
% 定义圆的顶点坐标
theta = linspace(0, 2*pi, 100); % 角度向量
x1 = r1 * cos(theta); % 内圆的 x 坐标
y1 = r1 * sin(theta); % 内圆的 y 坐标
x2 = r2 * cos(theta); % 外圆的 x 坐标
y2 = r2 * sin(theta); % 外圆的 y 坐标
% 创建多边形形状
pgon = polyshape([x1 x2; x1(end) x2(end)], [y1 y2; y1(end) y2(end)]);
% 绘制多边形形状
figure
plot(pgon)
axis equal
% 填充多边形形状的颜色
hold on
fill(x1, y1, m1) % 填充内圆的颜色
fill(x2, y2, m2) % 填充外圆的颜色
hold off
% 获取当前坐标区的图像数据
F = getframe(gca);
img = F.cdata;
% 添加随机噪声
noise = rand(size(img)) * 32 - 16; % 生成-16到+16范围内的随机噪声
img = img + noise; % 将噪声添加到图像中
img = uint8(img); % 转换图像为 uint8 类型
% 将图像保存为“tif”格式
imwrite(img, 'circles.tif')
% 读取并显示图像
img = imread('circles.tif');
imshow(img)
% 查看图像的直方图
imhist(img)
  • 输出结果

    在这里插入图片描述

实验心得

在第一部分的Matlab练习实验中,我们通过Matlab编程和图像基础知识进行了练习。在第一部分的Matlab练习中,我们创建了一个任意大小和形状的矩阵A,并计算了 A T A A^TA ATA A A T AA^T AAT的结果。我们验证了这些结果是否为方阵和对称矩阵。此外,我们还编写了一个Matlab程序来生成前30个斐波那契数。

在第二部分的图像生成实验中,我们生成了一个由两个同心圆组成的图像。内圆的半径为50像素,平均值为192,外圆的半径为100像素,平均值为128,背景的平均值为64。我们还为每个像素添加了在-16到+16范围内的均匀随机噪声,并将图像保存为“tif”格式。我们通过查看保存的图像和图像的直方图来验证生成的图像是否正确。

通过这个实验,我们巩固了Matlab编程和图像基础知识,并学会了生成矩阵和图像的操作。

文章来源:https://blog.csdn.net/qq_61890919/article/details/135254447
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。