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;
ただし、問題はまだ行が見つからなかったことです。これが処理された画像 です。
結果の画像から、問題はエッジのエイリアシングによるものだと思います。ハフラインに影響しますか?また、エイリアシングを削除するにはどうすればよいですか?