我使用 opencv 分析多项选择扫描仪,但首先我必须将图像设为黑白(二值化)并使用霍夫变换来查找图像中的线条。
这是原始图像
// 平滑图像
Mat img = imread(path,1);
if(img.empty()){
cout << "no picture shown" <<endl;
}
cvtColor(img,img,CV_BGR2GRAY);
Size size(3,3);
GaussianBlur(img,another,size,0);
adaptiveThreshold(another,another,255,CV_ADAPTIVE_THRESH_MEAN_C,CV_THRESH_BINARY,75,10);
bitwise_not(another,another);
// 查找带 houghline 的线条
vector<Vec4i> lines;
HoughLinesP(img,lines,1,CV_PI/180,80,400,10);
cout << "line size : " << lines.size() << endl;
但是问题是我仍然找不到任何行,这是处理后的图像 。
从结果图像来看,我认为问题出在边缘的锯齿上,是吗?它会影响轮廓线吗?如何消除锯齿?