IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Sobel 边缘检测 matlab代码实现 -> 正文阅读

[人工智能]Sobel 边缘检测 matlab代码实现

索贝尔(Sobel)算子是计算机视觉领域的一种重要处理方法。主要用于获得数字图像的一阶梯度,常见的应用和物理意义是边缘检测。索贝尔算子是把图像中每个像素的上下左右四领域的灰度值加权差,在边缘处达到极值从而检测边缘。

该算子包含两组3x3的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。如果以A代表原始图像,GxGy分别代表经横向及纵向边缘检测的图像,其公式如下:

?图像的每一个像素的横向及纵向梯度近似值可用以下的公式结合,来计算梯度的大小。

Matlab代码实现:

clc;
clear all;
close all;

RGB_data = imread('G:\picture_deal\matlab_code\chepai2.bmp');%图像读入

[height,width, DIM] = size(RGB_data); %提取图片的行列数

Y_data = zeros(height,width);
Cb_data = zeros(height,width);
Cr_data = zeros(height,width);
Gray_data = RGB_data;

R_data =    RGB_data(:,:,1);
G_data =    RGB_data(:,:,2);
B_data =    RGB_data(:,:,3);

for r = 1:height
    for c = 1:width
        Y_data(r, c) = 0.299*R_data(r, c) + 0.587*G_data(r, c) + 0.114*B_data(r, c);
        Cb_data(r, c) = -0.172*R_data(r, c) - 0.339*G_data(r, c) + 0.511*B_data(r, c) + 128;
        Cr_data(r, c) = 0.511*R_data(r, c) - 0.428*G_data(r, c) - 0.083*B_data(r, c) + 128;
    end
end

Gray_data(:,:,1)=Y_data;
Gray_data(:,:,2)=Y_data;
Gray_data(:,:,3)=Y_data;

figure(1);
imshow(Gray_data);
title('Y分量灰度图像'); 

%sobel边缘检测计算
for i = 2:height - 1   
    for j = 2:width - 1
        Gx = (Y_data(i+1,j-1) + 2*Y_data(i+1,j) + Y_data(i+1,j+1)) - (Y_data(i-1,j-1) + 2*Y_data(i-1,j) + Y_data(i-1,j+1));
        Gy = (Y_data(i-1,j+1) + 2*Y_data(i,j+1) + Y_data(i+1,j+1)) - (Y_data(i-1,j-1) + 2*Y_data(i,j-1) + Y_data(i+1,j-1));
        temp(i,j)=floor(sqrt(Gx^2 + Gy^2));
        if(uint8((sqrt(Gx^2 + Gy^2))) > 150)
            uSobel(i,j) = 0; %
        else
            uSobel(i,j) = 255;
        end
    end
end 

uSobel(480,:)=uSobel(1,:);
uSobel(:,640)=uSobel(:,1);

Gray_data(:,:,1)=uSobel;
Gray_data(:,:,2)=uSobel;
Gray_data(:,:,3)=uSobel;

figure(2);
imshow(Gray_data);
title('sobel算子后的Y分量图像');



?结果:

?

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-24 09:26:47  更:2022-04-24 09:27:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 9:36:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码