2016-10-21 128 views
0

我使用MSER算法與opencv和找到一些矩形部分 然後我想模糊裏面的矩形。 我的矩形是矢量像(x,y,寬度,高度),但使用擴張或腐蝕需要inputarray src。 如何將矢量轉換爲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

我推斷你想模糊矩形內部的圖像部分。 如果是這種情況,那麼您需要糾正您宣佈投資回報的方式。

如果「inImg」是一個墊子,然後你可以宣佈你的投資回報率如下:

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,但如果你的錯誤是關於到ROI聲明,那麼這應該爲你工作

+0

謝謝@Saransh Kejrowal – plzunderstandmyenglish