博客
关于我
【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/

    你可能感兴趣的文章
    OpenCV学习笔记(27)KAZE 算法原理与源码分析(一)非线性扩散滤波
    查看>>
    OpenCV学堂 | CV开发者必须懂的9种距离度量方法,内含欧氏距离、切比雪夫距离等(建议收藏)
    查看>>
    OpenCV学堂 | OpenCV中支持的人脸检测方法整理与汇总
    查看>>
    OpenCV学堂 | OpenCV案例 | 基于轮廓分析对象提取
    查看>>
    OpenCV学堂 | YOLOv8与YOLO11自定义数据集迁移学习效果对比
    查看>>
    OpenCV学堂 | YOLOv8官方团队宣布YOLOv11 发布了
    查看>>
    OpenCV学堂 | YOLOv8实战 | 荧光显微镜细胞图像检测
    查看>>
    OpenCV学堂 | 汇总 | 深度学习图像去模糊技术与模型
    查看>>
    OpenCV安装
    查看>>
    OpenCV官方文档 理解k - means聚类
    查看>>
    opencv实现多路播放
    查看>>
    opencv常用函数
    查看>>
    OpenCV探索
    查看>>
    OpenCV添加中文(五)
    查看>>
    opencv源码查看
    查看>>
    OpenCV点目标检测未找到所有目标,并且找到的圆圈偏移
    查看>>
    opencv特征提取1-Harris角点检测
    查看>>
    OpenCV环境搭建(一)
    查看>>
    OpenCV的视频读取
    查看>>
    openCV目标识别 目标跟踪 YOLO5深度学习 Python 计算机视觉 计算机毕业设计 源码下载
    查看>>