C ++模糊图像的矩形部分

时间:2016-10-21 03:42:28

标签: vector blur rect

我在opencv中使用MSER算法并找到一些矩形部分 然后我想模糊内部矩形。 我的renctangles是矢量(x,y,width,height)但是使用dilate或erode需要inputarray src。 如何将vector转换为inputarray src?

这是我的代码。

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
}

1 个答案:

答案 0 :(得分:0)

我推断你要模糊矩形内部的图像部分。 如果是这种情况,那么您需要纠正您宣布投资回报率的方式。

如果'inImg'是Mat,那么您可以按如下方式声明您的投资回报率:

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声明有关,那么这应该对您有用