关于hough变换函数的bug
根据官方教程或其他博客教程调用hough函数的时候总是会报错,主要是返回的circles错误,或者lines错误,这可能和输入参数有关。但是明确的输入是image格式并没有错,其他的参数也没有明确要求,暂时放下,以后再看。报错是再画图是报错,实际上错误是产生再调用hough函数时。
#include<opencv2/opencv.hpp>
#include<iostream>
using namespace cv;
using namespace std;
int main() {
Mat srcImage = imread("circle.jpg");
if (srcImage.data == 0) { cout << "there is no file"; return -1; }
imshow("srcImage", srcImage);
//HoughCircle 变换
Mat gray;
//转成灰度图
cvtColor(srcImage, gray, COLOR_BGR2GRAY);
//滤波
medianBlur(gray, gray, 5);
//使用houghcircles函数
vector<Vec3f> circles;
HoughCircles(gray, circles, HOUGH_GRADIENT, 1, 1, 100, 30, 1, 100);
//画出hough函数的结果
for (size_t i = 0; i < circles.size(); i++)
{
cout << circles[i]<<endl;
Vec3i c = circles[i];
if (c[2] > 0) {
ci