配置
home.h
#include "opencv.hpp"
using namespace std;
using namespace cv;
test_day1_pro
INCLUDEPATH += D:\Opencv\build_qt\install\include
INCLUDEPATH += D:\Opencv\build_qt\install\include\opencv
INCLUDEPATH += D:\Opencv\build_qt\install\include\opencv2
LIBS += -L D:\Opencv\build_qt\install\x86\mingw\lib\libopencv_*.a
Mat Home::imageInitHandleOpencv(Mat img)
Mat Home::imageInitHandleOpencv(Mat img)
{
Mat imgGray, imgBlur, imgCanny, imgDil;
// 灰度处理
cvtColor(img, imgGray, COLOR_BGR2GRAY);
// 高斯模糊
GaussianBlur(imgGray, imgBlur, Size(7, 7), 5, 0);
// 获取轮廓
Canny(imgBlur, imgCanny, 50, 150);
// 定义结构元素,用于形态学操作
Mat kernel = getStructuringElement(MORPH_RECT, Size(5, 5));
// 膨胀操作,加粗轮廓
dilate(imgCanny, imgDil, kernel);
// 返回处理后的图像
return imgDil;
}
- 将输入图像转换为灰度图像。
- 对灰度图像应用高斯模糊以减少噪声。
- 使用Canny边缘检测算法在模糊的图像中找到边缘。
- 使用形态学操作(膨胀)来加粗边缘。
图像检测-矩形近似
Mat Home::findObjectOnImage(Mat imgInit, Mat img, Rect &retRect)
Mat Home::findObjectOnImage(Mat imgInit, Mat img, Rect &retRect)
{