博客
关于我
【MATLAB】学习笔记(二次整理)
阅读量:551 次
发布时间:2019-03-09

本文共 2190 字,大约阅读时间需要 7 分钟。

MATLAB基础教程

图像读取与处理

PROGRAM ONE: imread、imshow、min、max

data = imread('fig.jpg');imshow(data);[min_val, max_val] = minmax(data(:));disp(max_val);data = data / 2;max_val = max(data(:));imshow(data);

ANALYSIS

  • 图像读取
  • data = imread('fig.jpg');

    使用 imread 函数读取名为 fig.jpg 的图像。注意文件名不含路径,fig.jpg 即为文件扩展名。

    1. 图片显示
    2. imshow(data);

      imshow 函数显示矩阵 data 中存储的图像。如果不希望 MATLAB 列出所有像元信息,可以在命令末尾添加 ;。例如:

      imshow(data;); % 不显示信息
      1. 最大值和最小值计算
      2. [min_val, max_val] = minmax(data(:));

        data(:) 将矩阵 data 转换为向量,使所有数值参与运算。minmax 函数返回最小值和最大值。

        TIPS

      3. 图片文件名应为 fig,而不是 fig.jpg
      4. 想隐藏某些计算结果,可以使用 @ 运算符。
      5. 将向量转换回矩阵,可以使用 reshape 函数。
      6. 使用 imwrite 存储和写取图像。
      7. STORE ANDьWRITE IMAGE

        imwrite(data, 'fig.jpg');imwrite(data, 'fig.tif');% 查看帮助文档help imreadhelp imwrite

        ARRAY MANIPULATION

        % 改变当前工作目录cd 'D:\tmp'% 创建向量或矩阵a = [1:5];b = [6:10];c = [11:15];d = [16:20];e = [21:25];% 垂直拼接向量data = [a; b; c; d; e]% 水平拼接向量data = [a, b, c, d, e]% 使用 `dlmwrite` 存储为 CSV 文件dlmwrite('data.csv', data)dlmwrite('data2.txt', data * 2)dlmwrite('data2.asc', data / 2)% 清空变量clear data

        STATISTICAL ANALYSIS

        data = readmatrix('E:\MATLAB\data.xlsx');% 计算矩阵均值mv = mean(data, 1);% 计算样本方差和标准差st = std(data);[n, m] = size(data);% 标准化数据X = (data - mv(ones(n, 1), :)) / st(ones(n, 1), :);% 计算相关系数矩阵R = corrcoef(X);% 主成分分析[u, v] = eig(R);eigv = diag(rot90(u) * rot90(v));% 计算方差贡献百分比per = 100 * eigv / sum(eigv);% 计算方差贡献累积百分比Cum = cumsum(per);

        LORENZ CURVE

        Lorenz curve 的计算涉及多种 MATLAB 函数,包括 cumsumlinspaceinterp1trapz 等。

        Example

        % 生成等分点t = linspace(0.01, 1, 100);% Lorenz 曲线计算Q = trapz(1.1, 0.01, t, 1.3, t);% 绘图box offax1 = axes('Position', get(gca, 'Position'));axes(ax1, 'YAxisLocation', 'left', 'XAxisLocation', 'top', ...    'Color', 'none', 'XColor', 'k', 'YColor', 'k');

        IMAGE ENHANCEMENT

        MATRIX OPERATIONS

        • vs. .* : 在矩阵运算中,* 表示普通矩阵乘法,而 .* 表示对应元素相乘。例如:
        a = [1 1; 1 1];a^2    % 2 2; 2 2a.*2   % 2 2; 2 2plot(a.*2);

        NOTATION

        • / : 除法,数值在前或后无区别,矩阵除法需注意维度。
        • fspecial() : 创建预定义图像滤镜。
        • imfilter() : 应用滤镜进行图像处理。
        • imnoise() : 添加噪声。
        • sqrt(double(p1).^2 + double(p2).^2); : 计算两数平方和的平方根。

        multi-spectral analysis

        使用 pca() 进行多光谱转换,分割 RGB 通道:

        % 读取多光谱图像img = imread('含有多个波段的图像.jpg');img = multispec2(img, 3); % 分别提取红、绿、蓝波段% 合成 RGB 图像img_rgb = cat(3, img(:,:4), img(:,:3), img(:,:2));imshow(img_rgb);

    转载地址:http://vrwsz.baihongyu.com/

    你可能感兴趣的文章
    nginx + etcd 动态负载均衡实践(四)—— 基于confd实现
    查看>>
    Nginx + Spring Boot 实现负载均衡
    查看>>
    Nginx + uWSGI + Flask + Vhost
    查看>>
    Nginx - Header详解
    查看>>
    Nginx Location配置总结
    查看>>
    Nginx upstream性能优化
    查看>>
    Nginx 中解决跨域问题
    查看>>
    Nginx 动静分离与负载均衡的实现
    查看>>
    Nginx 反向代理 MinIO 及 ruoyi-vue-pro 配置 MinIO 详解
    查看>>
    Nginx 反向代理解决跨域问题
    查看>>
    Nginx 反向代理配置去除前缀
    查看>>
    nginx 后端获取真实ip
    查看>>
    Nginx 学习总结(17)—— 8 个免费开源 Nginx 管理系统,轻松管理 Nginx 站点配置
    查看>>
    nginx 常用配置记录
    查看>>
    Nginx 我们必须知道的那些事
    查看>>
    Nginx 的 proxy_pass 使用简介
    查看>>
    Nginx 的配置文件中的 keepalive 介绍
    查看>>
    Nginx 负载均衡与权重配置解析
    查看>>
    Nginx 负载均衡详解
    查看>>
    nginx 配置 单页面应用的解决方案
    查看>>