0
OpenCVにはまだまだ新しく、最近はHoughline関数を使っています。私はVisual Studio 2015でOpenCV 3.2を使用しています。私は成功せずにHoughlinePのサンプルコードを試しました。コードはうまくコンパイルされますが、無限に実行され、「デバッグを停止」を押すと、「未処理の例外が発生しました.........アクセス違反の読み取り場所...」というエラーが表示されます。私はそれをデバッグしたとき、HoughlinsP関数(CannyとcvtColorはうまくいく)の原因と思われます。 HoughlinesP関数の後の行のサイズ= 1152921504603840390(ばかげた巨大数)。アドバイスをお願いしますか?ありがとうございました。OpenCV Houghline関数は無制限の行を作成する
#include <opencv2/imgproc.hpp>
#include <opencv2/highgui.hpp>
using namespace cv;
using namespace std;
int main()
{
Mat src, dst, color_dst;
src = imread("C:\\\Temp\\\img.jpg");
if (src.empty())
return -1;
Canny(src, dst, 50, 200, 3);
cvtColor(dst, color_dst, COLOR_GRAY2BGR);
vector<Vec4i> lines;
HoughLinesP(dst, lines, 1, CV_PI/180, 80, 30, 10);
for (size_t i = 0; i < lines.size(); i++)
{
line(color_dst, Point(lines[i][0], lines[i][1]),
Point(lines[i][2], lines[i][3]), Scalar(0, 0, 255), 3, 8);
}
namedWindow("Source", 1);
imshow("Source", src);
namedWindow("Detected Lines", 1);
imshow("Detected Lines", color_dst);
waitKey(0);
return 0;
}