sobel图像预处理
来源:互联网 发布:淘宝白菜群 编辑:程序博客网 时间:2024/06/05 08:54
实现 <<一种微小表面缺陷的机器视觉检测方法>>一文中的预处理
在微小表面缺陷检测中,由于缺陷面积很小,缺陷区域的灰度值变化往往更剧烈. 梯度向量的模值能反映该剧烈变化,且计算量不大. 梯度处理不但能突出图像中的小缺陷,而且能使变化缓慢的背景的特征减弱,大大简化了自动检测的计算任务[8]. 因此,对于背景变化不剧烈的表面图像,可以采用梯度法对表面图像进行增强. 当表面缺陷面积较小时,缺陷形状往往与圆形有一定的相似度,例如孔形、点状、斑状缺陷等,于是用Sobel 算子[8]对图像中3×3大小的邻域计算邻域中心位置像素的梯度幅值,并将该幅值记为g. 设图像的灰度级分为1, 2, · · · , L,如果g>l则灰度值取l,小于l则取g
#include <opencv2/core/core.hpp>#include "opencv2/imgproc/imgproc.hpp" #include "opencv2/highgui/highgui.hpp" #include <iostream> using namespace cv; using namespace std; int main(){Mat img,img2,img3;//请读入灰度图像img=imread("D:\\ping\\lf1.bmp",0);Mat kernel=(Mat_<uchar>(3,3)<<-1,-2,-1,0,0,0,1,2,1);copyMakeBorder(img,img2,1,1,1,1,BORDER_CONSTANT,Scalar(0) );//边界扩展img2.copyTo(img3);int nc=img2.cols;int nr=img2.rows;int level=250;for(int j=1;j<=nr-2;j++){uchar *p=img2.ptr<uchar>(j);uchar *p1=img3.ptr<uchar>(j);for(int i=1;i<=nc-2;i++){int n;n=abs(-(p+i-nc-1)[0]-2*(p+i-nc-1)[1]-(p+i-nc-1)[2]+(p+i+nc-1)[0]+2*(p+i+nc-1)[1]+(p+i+nc-1)[2])/8;if(n<=level)p1[i]=n;elsep1[i]=level;}}namedWindow("src");namedWindow("result");imshow("src",img);imshow("result",img3); waitKey(0);return 0;}
不知道是不是我理解错误~怎么感觉就不怎么好看不像那么一回事
0 0
- sobel图像预处理
- Sobel图像处理详解
- Sobel图像处理详解
- Sobel锐化图像
- 图像预处理
- 图像预处理
- 图像预处理
- 图像变换 - sobel算子(cvSobel)
- 【图像处理】sobel算子简述
- 图像边缘检测-Sobel算子
- 灰度图像--图像分割 Sobel算子
- 图像学习 -- Sobel算子检测图像边缘
- 图像预处理:图像增强
- opencv3_java 图像索贝尔Sobel处理 Imgproc.Sobel
- 第6章 图像变换/Sobel导数
- 图像边缘检测Sobel,Laplace,Canny
- 图像特征提取:Sobel边缘检测
- Sobel图像边界检测算法实现
- ThreadLocal用法和实现原理
- 浅析浮点数与定点数
- 透视投影详解
- python 遇到的异常
- 项目开发中的心得·
- sobel图像预处理
- centos安装mediawiki
- 全屏滑动返回手势
- 强烈推荐android studio用的几个插件
- springmvc初学时遇到问题,记录,省得自己以后再犯
- 备忘
- 并发编程实战手册-线程同步辅助类之CyclicBarrier
- JS初级学习笔记(2)
- 基础知识(七)opencv、python、人脸框检测