小言_互联网的博客

Matlab(8) 影像处理(一)

298人阅读  评论(0)

一、Introduction to digital image

  • 影像不等于事物本身,往往是经过光电元件获取的
  • 影像一般分为三种:色彩(Color)、灰阶(Gray Scale)、二元(Binary)(黑白)
  • Binary 图像只需要0/1表达黑/白;Gratscake image则每个点需要一个字节(0~255)来表达,数字越大越亮;Clolr Image则由三原色(RGB)各自的图一共三张图加在一起表示。

二、Read and show images

1. read&show:imread()&imshow()

  • Read an image() :imread()
  • Show an image():imshow()
    Example
>> I=imread('test.jpg');
>> imshow(I);


三个1620*1080的矩阵组成的矩阵
所以影像处理其实就是在处理矩阵
如:

>> for(i=1:size(I,1))
       for(j=1:size(I,2))
          for(k=1:size(I,3))
               I(i,j,k)=I(i,j,k)/2;
          end
       end
   end
>> imshow(I)

将图片变暗

-------------变成了↓----------------

2. image Info:imageinfo()

imageinfo(‘mm.png’)

3. Image Viewer:imtool()

可查看每个点的值

三、Image Processing

1. image arthmetic

2. Image Multiplication:immultiply()

可用于使图片变亮

>> J=immultiply(I,2);
>> subplot(1,2,2);imshow(J);
>> subplot(1,2,1);imshow(I)

3. Image Addition:imadd()

叠加,需要图片长宽相同

在这里插入代码片

I=imread('rice.png');
J=imread('cameraman.tif'); K=imadd(I,J);
subplot(1,3,1); imshow(I);
subplot(1,3,2); imshow(K);
subplot(1,3,3); imshow(J); 


因为某一点的数值如果相加结果大于255时就只能是255,所以两张图片相加可能会饱和,也就是某些地方显示白色

4. Image Histogram:imhist()

This MATLAB function calculates the histogram for the grayscale image I.
(计算I的灰度图像I的直方图。)

5. Histogram Equalization:histeq()

将灰度直方图的分布拉大

>>  I2=histeq(I);
>>  subplot(1,4,1);imhist(I);
>>  subplot(1,4,2);imshow(I);
>>  subplot(1,4,3);imhist(I2);
>>  subplot(1,4,4);imshow(I2);

6. Geometric Transformation

改变位置,一般通过矩阵变换,矩阵变换可以看一下线性代数

7. Image Rotation:imrotate()

This MATLAB function rotates image I by angle degrees in a counterclockwise
direction around its center point.
*
J = imrotate(I,angle)
J = imrotate(I,angle,method)
J = imrotate(I,angle,method,bbox)

Example

>> J=imrotate(I,35);
>> imshow(J)


这个函数可能会导致图像大小变化↑
也可以用矩阵来实现旋转

四、Write Image:imwrite()


转载:https://blog.csdn.net/weixin_45941945/article/details/116274919
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场