第一次实验课课堂笔记

时间:2020-12-22 20:51:54
这个是第一次上实验课的时候整理的笔记,直接将上课所打内容贴出来了。
%% 第一次实验课的笔记,主要功能是读取并显示图片,将彩色图片转换为灰度图片,在一个窗口中分网格显示多个图片
% 作者:杨宇东
% 日期:2014.09.25
% 参数:无
% 输出:无
%%
% 清屏
clc;
% 清空内存区
clear all;
% 读入一幅图片,图片的格式随意,只要 imread 这个函数支持,绝大部分都是支持的
% 矩阵多少行多少列就是图片的像素多少行多少列
im = imread('Bitmap/gdufs.jpg');
% 变量命名按如下。图像的大小,多少行,多少列,灰度图像维度 nDim 是1,彩色图像是3
% size 返回图像的大小,多少行多少列多少维
% 返回一个三维数组
[nHight, nWidth, nDim]=size(im);
% 使用编号为1的窗口,如果没有编号为1的窗口,新建编号为1的窗口,如果已经有编号为1的窗口,则将编号为1的窗口显示到最前面
figure(1);
imshow(im);
% matlab 中的命名取法,一些普通的可以随便取,对某些特殊的函数的取法,每一个文件里面只包含一个函数,源文件的名字就是函数的名字

% 将彩色图像转化为灰度图像,只能对彩色图像转换,如果对灰度图像使用会出错,需要判断
if nDim == 3
imgGray = rgb2gray(im);
end
figure(2);
imshow(imgGray);

% 将窗口划分为两行一列的小窗口,并指定位置
figure(3);
subplot(2, 1, 1), imshow(im);
subplot(2, 1, 2), imshow(imgGray);


第一次实验课课堂笔记

 

%% 第一次实验课的笔记,主要功能是将彩色图片转为灰度图片,将图片的一部分替换,截取图片
% 作者:杨宇东
% 日期:2014.09.25
% 参数:无
% 输出:无
%%
clc;
clear;
im = imread('Bitmap/ahri.jpg');
% figure(1);
% imshow(im);
[nHight, nWidth, nDim] = size(im);
if nDim == 3
imgGray = rgb2gray(im);
end
% figure(2);
% imshow(imgGray);
figure(3)
subplot(2, 1, 1), imshow(im);
subplot(2, 1, 2), imshow(imgGray);


% 将图片中的一条变成黑色,即修改矩阵
for i = 10:200
for j = 10:30
im(i, j, :) = [0, 0, 0];
end
end

%截取图片中的一部分
im1 = im(1:200,1:200,:);

figure(4);
imshow(im);
figure(5);
imshow(im1);


第一次实验课课堂笔记

 

%% 第一次实验课的笔记,主要功能是将彩色图片转为灰度图片,将图片的一部分替换,截取图片并拼接图片
% 作者:杨宇东
% 日期:2014.09.25
% 参数:无
% 输出:无
%%
% Matlab 中的所有数据都是矩阵,在操作中要按矩阵的操作来操作
% 图像就是一个矩阵
% 每句代码后面必须加分号
% 编写代码实现灰度图像的边缘检测
% 检测自己自拍照的轮廓边缘,1、转换为灰度图像,2、计算梯度,3、计算梯度的mod,4、阈值处理,不允许直接调用 matlab 函数
% 矩阵的一些基本操作
% A = [123 12 12;21 34 456;345 3 3]
% size(A)
% A(2, 3)
% A(2, :)
% A(:, 2)
% A(2, 2) = 255

% im 为源图像, imgGray 为灰度图像, subImg 为源图像的子图像, subGray 为灰度图像的子图像,
% im1 为左右拼接的图像, im2 为上下拼接的图像

clc;
clear;
im = imread('Bitmap/ahri.jpg');
[nHeight, nWidth, nDim] = size(im);
if nDim == 3
imgGray = rgb2gray(im);
end

% 替换
for i = 1:100
for j = 1:100
im(i, j, :) = [0, 0, 0];
end
end

subImg = im(1:200,1:200,:);
subGray = imgGray(1:200,1:200,:);
figure(1);
subplot(2, 1, 1), imshow(im);
subplot(2, 1, 2), imshow(imgGray);

im1(1:200,1:200,:) = subImg;
% 因为变为灰度图像之后矩阵为二维,而要将灰度图像拼合到彩色图片中,
% 需要将灰度值矩阵分别赋值到彩色图像的 RGB 三层颜色值矩阵中,否则会只有红色层被赋值
im1(1:200,201:400, 1) = subGray;
im1(1:200,201:400, 2) = subGray;
im1(1:200,201:400, 3) = subGray;
im2(1:200,1:200,:) = subImg;
im2(201:400,1:200, 1) = subGray;
im2(201:400,1:200, 2) = subGray;
im2(201:400,1:200, 3) = subGray;

figure(2);
subplot(2, 2, 1),imshow(subImg);
subplot(2, 2, 2),imshow(subGray);
subplot(2, 2, 3),imshow(im1);
subplot(2, 2, 4),imshow(im2);


第一次实验课课堂笔记