c++ opencv图像识别代码
时间: 2023-09-10 07:07:14 浏览: 302
opencv+C++有效识别图片中的各种矩形
以下是一个简单的基于OpenCV的C++图像识别示例代码:
```cpp
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
// 读取图像
Mat image = imread("test.jpg", IMREAD_COLOR);
if (image.empty()) {
cout << "Could not open or find the image" << endl;
return -1;
}
// 将图像转为灰度图
Mat grayImage;
cvtColor(image, grayImage, COLOR_BGR2GRAY);
// 对图像进行二值化处理
Mat binaryImage;
threshold(grayImage, binaryImage, 100, 255, THRESH_BINARY);
// 进行轮廓提取
vector<vector<Point>> contours;
findContours(binaryImage, contours, RETR_LIST, CHAIN_APPROX_SIMPLE);
// 在图像中画出轮廓
Mat contourImage = Mat::zeros(binaryImage.size(), CV_8UC3);
for (int i = 0; i < contours.size(); i++) {
drawContours(contourImage, contours, i, Scalar(0, 0, 255), 2);
}
// 显示图像
namedWindow("Original Image", WINDOW_NORMAL);
namedWindow("Contours", WINDOW_NORMAL);
imshow("Original Image", image);
imshow("Contours", contourImage);
// 等待按键
waitKey(0);
return 0;
}
```
该代码实现了对一张图像进行轮廓提取,并在图像中画出轮廓的功能。其中,使用了OpenCV中的一些常用函数,例如imread(),cvtColor(),threshold(),findContours()和drawContours()等。
阅读全文