zoukankan      html  css  js  c++  java
  • 使用matlab进行图像处理的一些常用操作和tip

      本人还是习惯使用Python语言,有时候不得不使用matlab的时候就变得举步维艰,下面记录一下使用matlab进行图像处理的一些常用操作以及代码,方便之后查阅:

      1. 图像的读取

    %% 读取原图像
    im = imread('Alan_Turing.jpg');
    im = double(im);
    

      图像需要使用imread来读取,然后图像通常会被转化成double类型,以便后续的操作。

      

      2. 读取图像的参数

    %% 读取图像的参数
    [m,n] = size(im);
    A = zeros(m,n);
    

      matlab函数的返回值有多个的时候,要使用[m, n]这种风格来承接,如果不想接受某个返回,可用~波浪线替代

      3. matlab的循环操作

    %% For循环
    for i = 1:num
        ~~~~~~
    end
    

      matlab中可没有那么方便的iteration操作,for 循环的风格是上面这样的。

      4. matlab写入图像

    imwrite(uint8(temp), sprintf('imgs/%d.jpg', i));
    

      matlab写入图像很简单,使用imwrite函数,前面是uint8的矩阵,后面是路径。注意了,这里使用了sprintf来弄出格式化的字符串文件名。

      5. matlab作图拼图

    %% 作图拼图
    figure(1);
    imshow(uint8(im));title('原图');axis on
    
    figure(2); 
    subplot(241); imshow(uint8(squeeze(im_list(1,:,:)))); title('k=2'); axis off
    subplot(242); imshow(uint8(squeeze(im_list(2,:,:)))); title('k=4'); axis off
    

      figure()函数就是生成画布的啦,然后使用画笔imshow在画布上作图,title,axis on(off),xlabel,ylablel分别指定图名,是否画坐标轴刻度,x,y打什么标签。

      当有多个子图的时候需要使用subplot来生成子图,注意这里imshow的都是uint8格式(因为我们是RGB呀)。squeeze是去除维度为1的维。以及一个数组的表示,Python中是A[1,2,3],matlab中则是A(1,2,3)。

  • 相关阅读:
    ELK日志管理
    Python笔记——break的注意事项
    linux下mysql集群的安装
    为什么还原innobackupex备份后查看到的Executed_Gtid_Set与xtrabackup_binlog_info不一致
    MySQL备份可能遇到的坑
    利用.frm、.ibd恢复数据
    如何得到Slave应用relay-log的时间
    mysql.user细节三问
    跳过复制错误——slave_skip_errors、slave_exec_mode
    跳过复制错误——sql_slave_skip_counter
  • 原文地址:https://www.cnblogs.com/chester-cs/p/12986562.html
Copyright © 2011-2022 走看看