Sobel边缘检测
来源:互联网 发布:怎么反查域名 编辑:程序博客网 时间:2024/04/29 11:27
Sobel算子:
公式:
梯度大小:
梯度方向:
#define pow_2(x) ((x)*(x))typedef struct PointStruct {int x , y;}PointS , PixelVector;bool SobelCheck( PointS ip, char* curSignal, int frameWidth, int frameHigh ) {if( ip.x < 1 || ip.y < 1 || ip.x >= frameWidth - 1 || ip.y >= frameHigh - 1 ){ return false; }const int Gx[3][3] = { -1 , 0 , 1 , -2 , 0 , 2 , -1 , 0 , 1 }; const int Gy[3][3] = { 1 , 2 , 1 , 0 , 0 , 0 , -1 , -2 , -1 };const int dir[9][2] = { -1 , -1 , -1 , 0 , -1 , 1 , 0 , -1 , 0 , 0 , 0 , 1 , 1 , -1 , 1 , 0 , 1 , 1 }; const int threshold = 100;int tx , ty , tsignal;int G1 , G2;G1 = G2 = 0;for( int i = 0 ; i < 3 ; ++i ) {for( int j = 0 ; j < 3 ; ++j ) {tx = ip.x + dir[i * 3 + j][0];ty = ip.y + dir[i * 3 + j][1];tsignal = curSignal[tx + ty * frameWidth];G1 += Gx[i][j] * tsignal;G2 += Gy[i][j] * tsignal;}}int G;G = ( int )( pow_2( ( Double )G1 ) + pow_2( ( Double ) G2 ) );if( G > threshold * threshold ){ return true; }return false;}
原图:
阈值threshold为100,效果图:
阈值threshold为200,效果图:
- Sobel边缘检测算法
- Sobel边缘检测算法
- Sobel边缘检测算法
- Sobel边缘检测算法
- Sobel边缘检测
- Sobel边缘检测算法
- sobel 边缘检测算法
- Sobel边缘检测算法
- sobel边缘检测算子
- Sobel 边缘检测
- sobel边缘检测
- Sobel边缘检测(matlab)
- Sobel 边缘检测
- Sobel边缘检测算法
- Sobel边缘检测算法
- 边缘检测:Sobel算子
- Sobel边缘检测
- Sobel边缘检测算法
- 心灵鸡汤:谦虚、不沉默、有危机感、不断努力
- 委托和代理的相关概念
- Linux RUID EUID SUID
- dedecms的安装以及为他配置虚拟主机
- 【something】简单的平均脸制作
- Sobel边缘检测
- 手工构建Struts2 Web项目并用Ant构建工程
- 软件加密锁加密技巧
- otg 主控制器移植
- 【大葱虽有4大治病功效】
- 自己开发java代码生成工具
- yii rules 验证详解
- Myeclipse 配置 webserice 时 出现错误
- SqlServer和Oracle中一些常用的sql语句7 游标