Bootstrap

MATLAB图片处理(上)

MATLAB 图像处理。相关函数大多数都以im开头。

1. 查看图像信息imfinfo

我的理解时 image file infomation
输入

clear
format compact
% 查看图片信息
% 此处图片名为 ubuntu.png
% 文件路径为 D:/picture,可以用 ‘/’,也可以用 ‘\‘
image = imfinfo('D:/picture/ubuntu.png'); %载入图片
image_name = image.Filename
modification_date = image.FileModDate

image_size = image.FileSize
image_width = image.Width  %单位为像素
image_heiht = image.Height


color_depth = image.BitDepth
color_type  = image.ColorType

输出

>> images
image_name =
D:\picture\ubuntu.png
modification_date =
19-Apr-2018 07:32:00
image_size =
      560490
image_width =
        1920
image_heiht =
        1080
color_depth =
    24
color_type =
truecolor
2. 转换图片格式imread imwrite

此处由.png变成 `.jpg’,其余转换类似
输入

%载入图片
image = imread('D:/picture/ubuntu.png');
%保存为新图片
imwrite(image, 'D:/picture/ubuntu_new.jpg','jpg');
3. 显示图片 imshow

输入

%载入图片
image1 = imread('D:/picture/rabbit.jpg');
image2 = imread('D:/picture/flowers.jpg');
%用subplot来同时展现两张图
subplot(2, 1, 1); imshow(image1);
subplot(2, 1, 2); imshow(image2);

效果
在这里插入图片描述

4. 彩色变灰度 rgb2gray

输入

%载入图片
image_original = imread('D:/picture/rabbit.jpg');
%转变成灰度图片
image_gray = rgb2gray(image_original);
%用subplot来同时展现两张图
subplot(2, 1, 1); imshow(image_original);
subplot(2, 1, 2); imshow(image_gray);

输出
在这里插入图片描述

5. 图片红绿蓝通道,取三维分量的不同分量

输入:

%载入图片
image = imread('D:/picture/rgb.jpg');

%红绿蓝通道,看图比较容易知道啥意思
%图片存储成三维形式
red_channel   = image(:, :, 1);
green_channel = image(:, :, 2);
blue_channel  = image(:, :, 3);

%画图
subplot(2, 2, 1); imshow(image);               title('Original Image');
subplot(2, 2, 2); imshow(red_channel);     title('Red Channel');
subplot(2, 2, 3); imshow(green_channel); title('Green Channel');
subplot(2, 2, 4); imshow(blue_channel);   title('Blue Channel');

输出,注意看颜色变化
在这里插入图片描述

6. 获取特点像素点的值,用下标索引

输入

%载入图片
image_rgb = imread('D:/picture/rgb.jpg');
image_gray = rgb2gray(image);

%获取像素点的值
%彩色图有三个分量,转化成灰度图只有两个分量
%本质上彩色图就是一个三维‘矩阵’,灰度图就是二维矩阵

disp('图片尺寸')
image_rgb_size  = size(image_rgb)
image_gray_size = size(image_gray)

disp('指定像素点')
image_rgb_pixel_value  = image_rgb(100, 100, 1)
image_gray_pixel_value = image_gray(100, 100)

输出

>> images
图片尺寸
image_rgb_size =
   225   225     3
image_gray_size =
   225   225
指定像素点
image_rgb_pixel_value =
  229
image_gray_pixel_value =
  193

先写道这里吧,亲自实践一下其实很简单。写多了一下子看到会莫名压力大。

参考资料

youtube视频,一系列的视频

;