我想检测和COMPLETE从随机分布的线段的所有可能的四角形!
附带的照片就是一个例子,线条可能总是出现在非常不同的位置.
任何人都可以为此指出任何好的算法?

解决方案是检测和预测黄色四边形

c# algorithm opencv artificial-intelligence image-processing
我有这个形象

如何OCR呢?我知道这很有挑战性,但我真的很感激任何帮助.
c# ocr pattern-recognition artificial-intelligence image-processing
好吧问题就是这样,
我知道函数Line(),它在两点之间绘制线段.
我需要画线而不是线段,也使用线段的两个点.
[EN:根据之前发布的问题编辑,作为问题的答案]
我使用了你的解决方案,它在水平线上表现不错,但我在垂直线上仍然遇到问题.
例如,下面是使用点[306,411]和[304,8](紫色)和绘制线(红色)在600x600像素的图像上的示例.你有提示吗?
好吧,这个问题说明了一切
我有一些轮廓,我想从中得到最好的四边形
当我从OpenCV 2.4.2使用时:
cv::findContours()
Run Code Online (Sandbox Code Playgroud)
这是输出:

如何摆脱所有这些不规则的形状,只留下直线?

附加的图像是Opencv 2.4.2的Hough变换的输出
你能用最好的算法告诉我从这些线段中检测最好的四边形(不总是矩形)形状
即使某些角落位于图像边界之外,我仍然需要检测它们
非常感谢
opencv artificial-intelligence image-processing shapes hough-transform
我有一个从sourceImage中提取的四个角:
src_vertices[0] = corners[upperLeft];
src_vertices[1] = corners[upperRight];
src_vertices[2] = corners[downLeft];
src_vertices[3] = corners[downRight];
Run Code Online (Sandbox Code Playgroud)
这四个角像这样扭曲到destinationImage:
dst_vertices[0] = Point(0,0);
dst_vertices[1] = Point(width, 0);
dst_vertices[2] = Point(0, height);
dst_vertices[3] = Point(width, height);
Mat warpPerspectiveMatrix = getPerspectiveTransform(src_vertices, dst_vertices);
cv::Size size_d = Size(width, height);
cv::Mat DestinationImage(width,height,CV_8UC3);
warpPerspective(sourceImage, destinationImage, warpPerspectiveMatrix, size_d, INTER_LINEAR, BORDER_CONSTANT);
Run Code Online (Sandbox Code Playgroud)
现在我的问题是:
我有一个点p(x,y)取自destinationImage如何在原始sourceImage中检索此点的坐标
换句话说,我想使用warpPerspectiveMatrix来完成getPerspectiveTransform的相反工作
opencv image-processing perspectivecamera distortion 3d-reconstruction
我正在使用OpenCV 2.4.2
这是OpenCV文档的引用
C++:void HoughLinesP(InputArray image,OutputArray lines,double rho,double theta,int threshold,double minLineLength = 0,double maxLineGap = 0)
参数:
image - 8位,单通道二进制源图像.可以通过该功能修改图像.
lines - 行的输出向量.每条线由4元素向量表示,其中和是每个检测到的线段的结束点.
rho - 累加器的距离分辨率,以像素为单位.
theta - 累加器的角度分辨率,以弧度表示.
threshold - 累加器阈值参数.只返回获得足够票数()的那些行.
minLineLength - 最小行长度.短于此的线段被拒绝.
maxLineGap - 同一行上各点之间允许的最大间隙以链接它们
我的问题是
被minLineLength和maxLineGap以像素为单位?或者是什么?