opencv 玻璃镜面缺陷检测,缺陷信息标记及提取

本文介绍使用OpenCV进行玻璃镜面缺陷检测,通过图像处理技术提取缺陷并进行标记,包括灰度化、二值化、膨胀腐蚀等步骤,最后展示效果并输出缺陷特征值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

opencv 玻璃镜面缺陷检测,缺陷信息标记及提取

作者:scutjy2015@163.com



Part 1 部分效果图






Part 2 源程序
#include <opencv2\opencv.hpp>
#include <iostream>
//#include <cv.h>
//#include <cxcore.h>
//#include <highgui.h>
//#include <iostream>
//#include<opencv2/imgproc/imgproc.hpp>

#include <string>

//#include <list>
//#include <vector>
//#include <map>
//#include <stack>
//#include <opencv2/highgui/highgui.hpp>
#include <stdio.h>
//#include <math.h>

using namespace cv;
using namespace std;


//定义灰度图像变量
IplImage *g_GrayImage = NULL;
//定义二值化图片变量
IplImage *g_BinaryImage = NULL;                                                                                                                                                                                                                                   
//定义二值化窗口标题
const char *WindowBinaryTitle = "二值化图片";
//定义滑块响应函数

//创建源图像窗口标题变量
const char *WindowSrcTitle = "灰度图像";
//创建滑块标题变量
const char *TheSliderTitle = "二值化阀值";


const char *SrcPath = "G:/AA computer vision/vs_opencv_example/defect detecting 201706291343/picture/1706201246_ 38.jpg"; 定义图片路径



IplImage *g_pGrayImage_liantong = NULL;
IplImage *g_pBinralyImage_liantong = NULL;

int contour_num = 0; //数字编号
char  number_buf[10];  数字编号存入数组,puttext

#define num_col 11   二维数组的列,每一个点缺陷信息的详细信息

long int liantong_all_area = 0; 连通区域总面积
long int Rect_all_area = 0;   保存最小外接矩形总的面积


=====================================================================
struct my_struct1{
	double scale;   定义显示图像的比例
	const int threshold_value_binaryzation;  定义第一次二值化阀值
	const int threshold_value_second_binaryzation;  定义第一次二值化阀值
};
my_struct1 picture = { 0.3, 50, 100 };

=====================================================================
struct my_struct2{
	int Model1_k1 ;  图像膨胀腐蚀
	int Model1_k2 ;  图像膨胀腐蚀
	int Model2_k1 ;  图像膨胀腐蚀
	int Model2_k2 ;  图像膨胀腐蚀
} ;
my_struct2 value = {5,2,3,2};

=====================================================================
struct my_struct3{

	double maxarea ;  最大缺陷面积
	double minarea ;  最小显示保留的缺陷面积

	double font_scale ;  字体大小
	int font_thickness ; 字体粗细

	const int Feature_value2_number ; 定义一个二维数组的列,即缺陷的个数

};
my_struct3 value2 = { 0, 4, 0.6, 0.8 , 100};

=========================================================
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值