2016-10-21 12 views
0

私はopencvでMSERアルゴリズムを使用し、いくつかの矩形部分を見つけます。 次に、その矩形の内側をぼかしたいと思います。 私のレクタングルはベクトル(x、y、幅、高さ)に似ていますが、拡張または崩壊を使用するには入力配列srcが必要です。 vectorをinputarray srcに変換するにはどうすればよいですか?画像のC++ブラーリング矩形部分

ここは私のコードです。

vector< vector< Point> > contours; 
vector< Rect> bboxes; 
Rect MserROI; 
Ptr< MSER> mser = MSER::create(21, (int)(0.00002*textImg.cols*textImg.rows), (int)(0.05*textImg.cols*textImg.rows), 1, 0.7); 
mser->detectRegions(textImg, contours, bboxes); 

for (int i = 0; i < bboxes.size(); i++) 
{ 
    cout << bboxes[i] << '\n'; 
    rectangle(inImg, bboxes[i], CV_RGB(0, 0, 0)); 
    MserROI = bboxes[i]; 
    dilate(MserROI, Mser_dil, Mat(), Point(-1, -1), 2) //error 
} 

答えて

0

私は、矩形の内側の画像部分をぼかすと推測します。 その場合、ROIを宣言する方法を修正する必要があります。

「inImg」のマットである場合は、次のようにあなたのROIを宣言することができます:あなたのコードで

for (int i = 0; i < bboxes.size(); i++) 
{ 
    rectangle(inImg, bboxes[i], CV_RGB(0, 0, 0)); 
    Mat MserROIimg=inImg(bboxes[i]);   
    dilate(MserROI, Mser_dil, Mat(), Point(-1, -1), 2) //error 
} 

を、あなたはMser_dilを宣言したどこに言及していませんが、あなたのエラーが関係されている場合投資収益率の宣言には、これはあなたのために動作するはずです

+0

ありがとうございます@サランシーKejrowal – plzunderstandmyenglish

関連する問題