Sobel边缘检测(matlab)
来源:互联网 发布:淘宝家用电器评语 编辑:程序博客网 时间:2024/06/11 02:24
- 边缘检测是为了将其周围像素灰度有阶跃变化的像素检测出来,这些像素组成的集合就是该图像的边缘。比较常用的边缘检测方法就是考察每个像素在某个领域内灰度的变化,然后利用边缘临近一阶或二阶方向导数变化规律检测边缘,即边缘检测局部算法。
- 而常用的边缘检测算子有sobel,Roberts,Prewitt,Laplace等等,这里先介绍sobel算子的检测过程。主要的方法就是将图像的每一个点都用sobel算子做卷积:一个用来检测垂直边缘,一个用来检测水平边缘,而最后两个卷积的最大值将作为该点的输出,即检测后的灰度。
- Sobel算子:可以看到sobel算子包括两组3*3的矩阵,左边的表示垂直,右边的表示水平。将它与图像作平面卷积,即可分别得出垂直及水平的亮度差分近似值。
主要的代码如下:
clear all; close all;imag = imread('face7.jpg'); %读取关键帧imag = rgb2gray(imag); %转化为灰度图subplot(131);imshow(imag):title('原图'); [high,width] = size(imag); % 获得图像的高度和宽度F2 = double(imag); U = double(imag); uSobel = imag;for i = 2:high - 1 %sobel边缘检测 for j = 2:width - 1 Gx = (U(i+1,j-1) + 2*U(i+1,j) + F2(i+1,j+1)) - (U(i-1,j-1) + 2*U(i-1,j) + F2(i-1,j+1)); Gy = (U(i-1,j+1) + 2*U(i,j+1) + F2(i+1,j+1)) - (U(i-1,j-1) + 2*U(i,j-1) + F2(i+1,j-1)); uSobel(i,j) = sqrt(Gx^2 + Gy^2); endend subplot(132);imshow(im2uint8(uSobel)):title('边缘检测后'); %画出边缘检测后的图像% Matlab自带函数边缘检测% K为获取得到的关键帧的灰度图BW3 = edge(imag,'sobel', 0.09);subplot(133);imshow(BW3,[]):title('Matlab自带函数边缘检测');
如果想用matlab自带的其他算子进行边缘检测的话,直接将edge中的sobel参数修改即可
4 0
- Sobel边缘检测(matlab)
- matlab sobel canny prewitt 边缘检测算子
- Sobel边缘检测算法
- Sobel边缘检测算法
- Sobel边缘检测算法
- Sobel边缘检测算法
- Sobel边缘检测
- Sobel边缘检测算法
- sobel 边缘检测算法
- Sobel边缘检测算法
- sobel边缘检测算子
- Sobel 边缘检测
- sobel边缘检测
- Sobel 边缘检测
- Sobel边缘检测算法
- Sobel边缘检测算法
- 边缘检测:Sobel算子
- Sobel边缘检测
- 利用xUtils下载并安装apk
- ScrollView嵌套RecyView 滑动惯性消失的解决办法
- linux tar 解压命令总结
- Android开机启动耗时较多的部分有3个,分别是preloadclasses和scan packages。//preload-resources
- codeforces 2B 动态规划
- Sobel边缘检测(matlab)
- 通过selenium抓取新浪微博
- 自定义控件
- [绍棠] iOS开发:获取设备IP地址
- 第12周项目3——数组类运算的实现
- 自定义控件View
- MySQL客户端程序及一些使用小工具介绍
- (需要确认一点)C++ 析构函数和delete运算符
- C++第10/11周项目 继承与派生 【项目2 - 存储班长信息的学生类】(复习新版)