2016-11-20 9 views
3

私は現在、画像を読み込んで多数のフィルタを適用するプロジェクトに取り組んでいます。関心領域の周りに境界矩形を配置できるようにするためです。画像から不要な線を取り除く

cvtColor(src, newsrc, CV_BGR2GRAY); 
adaptiveThreshold(~newsrc, dst, 255, CV_ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY, 15, -2); 

:私はその後、グレースケールと適応閾値を適用するために画像を変換

string imageLocation = "loctation of image file"; 
src = imread(imageLocation, 1); 

Inputted image

私は、入力として並んで紙に手書きテキストのイメージを持っていますApplied adaptive thresholding

私はモルフォル

Mat horizontal = dst.clone(); 

int horizontalSize = dst.cols/30; 
Mat horizontalStructure = getStructuringElement(MORPH_RECT, Size(horizontalSize,1)); 

erode(horizontal, horizontal, horizontalStructure, Point(-1, -1)); 
dilate(horizontal, horizontal, horizontalStructure, Point(-1, -1)); 

cv::resize(horizontal, horizontal, cv::Size(), 0.5, 0.5, CV_INTER_CUBIC); 
imshow("horizontal", horizontal); 

次(これまでのところは良い)を生成します:イメージから水平線を排除しようとするogical操作 Input image horizontal line seperation

私は、その後の図に同じむしばむ& DILATEメソッドを使用しよう垂直アウト:

int verticalsize = dst.rows/30; 
Mat verticalStructure = getStructuringElement(MORPH_RECT, Size(1,verticalsize)); 

erode(vertical, vertical, verticalStructure, Point(-1, -1)); 
dilate(vertical, vertical, verticalStructure, Point(-1, -1)); 

cv::resize(vertical, vertical, cv::Size(), 0.5, 0.5, CV_INTER_CUBIC); 
imshow("vertical", vertical); 

私は見つけることができますOpenCVのの例を、以下のよhere

しかし、私は垂直のために取得しています出力は、次のとおりです。 Vertical output

私の質問があり、私は画像からこれらの水平線を削除して行くだろうか。

申し訳ありませんが長い質問(私はできる限り説明したいと思います)とアドバイスを事前に感謝します。

+0

垂直を解明しようとするとどういう意味ですか? –

+0

私はOpenCVの例へのリンクを投稿しました。そして、水平線からテキストを分離するために、水平線と垂直線を抽出するために形態学的演算を使用します。 –

+0

'Mat vertical'がどこで宣言され、初期化されたかわかりません。それ本当? –

答えて

1

現在のように周波数領域でこの作品を作ってみることができます:FFTでの作業

http://lifeandprejudice.blogspot.ru/2012/07/activity-6-enhancement-in-frequency_25.html

http://www.fmwconcepts.com/imagemagick/fourier_transforms/fourier.html

が画像からregilarグリッドを追加/削除するのに非常に有効です。

+0

私は今見てみましょう。可能であれば、質問にリンクされている例を確認して、それがどのように行われたかを確認できますか?私は実際にどこが間違っているのかを知りたいです。 –

+0

あなたのエロージョンカーネルの垂直サイズが大きすぎます。実際には、このような太い要素はイメージにありません。 –

+0

これは、 'verticalsize = dist.cols()/ 30'を使って遊ぶ場合です –

関連する問題