我一直试图在广场周围找到4条线,以便我可以获得正方形的顶点.由于准确性,我采用这种方法而不是直接使用Harris或轮廓方法找到角点.在opencv中使用内置函数中的houghlines,我无法获得全长行来获得交叉点,而且我也得到了太多不相关的行.我想知道参数是否可以微调以获得我的要求?如果是,我该如何解决?我的问题与此处的问题完全相同.但是,即使在更改这些参数后,我也无法获得这些线条.我已将原始图像与代码和输出相关联:
原始图片:
码:
#include <Windows.h>
#include "opencv2\highgui.hpp"
#include "opencv2\imgproc.hpp"
#include "opencv2/imgcodecs/imgcodecs.hpp"
#include "opencv2/videoio/videoio.hpp"
using namespace cv;
using namespace std;
int main(int argc, const char** argv)
{
Mat image,src;
image = imread("c:/pics/output2_1.bmp");
src = image.clone();
cvtColor(image, image, CV_BGR2GRAY);
threshold(image, image, 0, 255, CV_THRESH_OTSU + CV_THRESH_BINARY_INV);
namedWindow("thresh", WINDOW_NORMAL);
resizeWindow("thresh", 600, 400);
imshow("thresh", image);
cv::Mat edges;
cv::Canny(image, edges, 0, 255);
vector<Vec2f> lines;
HoughLines(edges, lines, 1, CV_PI / 180, 100, 0, 0);
for (size_t i = 0; i < lines.size(); …Run Code Online (Sandbox Code Playgroud)