opencv中的轮廓检测与位置标定
步骤是灰度化、二值化、寻找轮廓、最小外接矩形、图像调整。
比较简单,欢迎探讨,下面是代码
int main()
{
Mat srcImage = imread("D://test1.jpg");
Mat srcGray, threImage,dstImage;
cvtColor(srcImage, srcGray, CV_RGB2GRAY);
imshow("srcImage", srcImage);
threshold(srcGray, threImage, 130, 255, 0);
//imshow("threshold", threImage);
dstImage = threImage < 100;//反色
//imshow("reverse", dstImage);
std::vector<Point> contours;
std::vector<std::vector<cv::Point>> f_contours;
cv::findContours(dstImage,f_contours, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_NONE);
//找到目标轮廓
int max_area = 0;
int index;
for (int i = 0