我能够制作自适应阈值并检测旋转角度(我不确定是否必须旋转图像)
我正在努力的是检测包含表单的矩形。我尝试了不同的方法,比如opencv的findContours()。它能够找到的最大轮廓是一个带名字的盒子。
之后我决定使用HoughLinesP,但它找到了很多行,我不知道如何过滤它们。检测矩形以校正表格也很方便,之后我将能够轻松地阅读答案。 所以我已经在考虑在角落添加黑色方形标记了。但也许有人可以给我一些如何正确做到的想法。
HoughLinesP(我使用nodejs,但我可以阅读python和c ++):
(function() {
let inputs = document.querySelectorAll("#register-form div input");
for (let input in inputs) {
if(inputs.hasOwnProperty(input)) {
let current = inputs[input];
current.setCustomValidity(current.dataset.customError);
}
}
})();
答案 0 :(得分:1)
好的,所以我能够通过扩张来检测矩形:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^.]+)$ $1.php [L]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
最大轮廓代码:
let {area, contour} = getMaxContour(gray);
let dilateIterations = 0;
const MAX_DILATE_ITERATIONS = 9;
while(area<MINIMAL_POSSIBLE_AREA && dilateIterations<MAX_DILATE_ITERATIONS){
dilateIterations++;
gray = gray.dilate(new cv.Mat(), new cv.Point(-1,-1), 1, cv.BORDER_CONSTANT);
let result = getMaxContour(gray);
contour = result.contour;
area = result.area;
if(DEBUG) {
writeImage(`dilated_${dilateIterations}.png`, gray);
}
}
之后,我能够突出角落并进行进一步的视角修复。