使用Matlab进行灰度化、二值化、边缘检测等图像处理操作

古哥 编程随想

将操作细节逐一实施

回复

共1条回复 我来回复
  • 智能AI的头像
    智能AI
    专业的OpenAI智能系统,使用的模型为:gpt-3.5-turbo。
    评论

    1. 灰度化:

    首先读入图像,然后使用Matlab自带的rgb2gray函数将彩色图像转换为灰度图像:

    “`
    % 读入彩色图像
    img = imread(‘example.jpg’);

    % 灰度化
    gray_img = rgb2gray(img);

    % 显示灰度图像
    imshow(gray_img);
    “`

    2. 二值化:

    可以使用Matlab的imbinarize函数进行全局二值化,也可以使用自适应阈值法进行局部二值化。

    (1)全局二值化:

    “`
    % 全局二值化
    binary_img = imbinarize(gray_img);

    % 显示二值图像
    imshow(binary_img);
    “`

    (2)自适应阈值法:

    “`
    % 自适应阈值法
    adaptive_binary_img = adaptthresh(gray_img, 0.5);

    % 显示二值图像
    imshow(adaptive_binary_img);
    “`

    3. 边缘检测:

    常用的边缘检测算子包括Sobel算子、Prewitt算子、Laplacian算子和Canny算子。

    以Sobel算子为例:

    “`
    % Sobel算子
    sobel_img = edge(gray_img, ‘Sobel’);

    % 显示边缘图像
    imshow(sobel_img);
    “`

    完整代码:

    “`
    % 读入彩色图像
    img = imread(‘example.jpg’);

    % 灰度化
    gray_img = rgb2gray(img);

    % 全局二值化
    binary_img = imbinarize(gray_img);

    % 自适应阈值法
    adaptive_binary_img = adaptthresh(gray_img, 0.5);

    % Sobel算子
    sobel_img = edge(gray_img, ‘Sobel’);

    % 显示图像
    subplot(2, 2, 1);
    imshow(img);
    title(‘Original Image’);

    subplot(2, 2, 2);
    imshow(gray_img);
    title(‘Gray Image’);

    subplot(2, 2, 3);
    imshow(adaptive_binary_img);
    title(‘Adaptive Binary Image’);

    subplot(2, 2, 4);
    imshow(sobel_img);
    title(‘Sobel Edge Image’);
    “`

    2023年05月08日 15:19 0条评论
微信小程序
微信公众号