Skip to content

MaoZhuoqi/ImageProcessingByMATLAB

Repository files navigation

ImageProcessingByMATLAB

MATLAB图像处理作业

内容

1.使用浏览器下载一张彩色图片(png格式)

2.使用MATLAB读取这张彩色图片,并显示在figure1

3.将此图片转为黑白图,并显示在figure2

4.将此图片缩小1倍,如500500缩小为250250,并显示在figure3

5.将缩小的图片用jpeg格式保存在本地硬盘

完整代码

pic1 = imread('pic460x460.png');%从文件读取图像
figure,imshow(pic1);%将图像显示在figure1
pic2 = pic2gray(pic1);%调用pic2gray函数,将图像转换为灰度图
figure,imshow(pic2);%将灰度图显示在figure2
pic3 = picnarrow(pic1);%调用picnarrow函数,将原图像缩小至原来的一半
figure,imshow(pic3);%将缩小后的图像显示在figure3
imwrite(pic3,'pic230x230.jpeg');%以jpeg格式将缩小图保存

function picgray = pic2gray(imrgb)%定义pic2gray函数,用于将图像转换为灰度图
    [m,n,t] = size(imrgb);%读取图片的大小
    for i = 1:m
        for j = 1:n
            for k = 1:t
            picgray(i,j,k) = 0.299*imrgb(i,j,1)+0.587*imrgb(i,j,2)+0.11400*imrgb(i,j,3);
%加权实现从真彩到灰度的降维转换
            end
        end
    end
end

function picresize = picnarrow(imrgb)%定义picnarrow函数,用于将图像进行缩放
    [h,w,t] = size(imrgb);%读取图像大小
    xscale = 2;%宽度缩小2倍
    yscale = 2;%高度缩小2倍
    ht = round(h./xscale);
    wt = round(w./yscale);
    for i = 1:ht
        for j = 1:wt
            for k = 1:t
                picresize(i,j,k) = imrgb(round(i*xscale),round(j*xscale),k); 
            end
        end
    end
end

运行结果

pic1 = imread('pic460x460.png');%从文件读取图像
figure,imshow(pic1);%将图像显示在figure1

pic460x460

pic2 = pic2gray(pic1);%调用pic2gray函数,将图像转换为灰度图
figure,imshow(pic2);%将灰度图显示在figure2

picgray

pic3 = picnarrow(pic1);%调用picnarrow函数,将原图像缩小至原来的一半
figure,imshow(pic3);%将缩小后的图像显示在figure3
imwrite(pic3,'pic230x230.jpeg');%以jpeg格式将缩小图保存

pic230x230

其他

pic2gray 函数通过计算 R、G 和 B 分量的加权和,将 RGB 值转换为灰度值:

0.2989 * R + 0.5870 * G + 0.1140 * B 

picnarrow函数可以通过修改xscaleyscale的值来改变图像缩小的比例

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published