сделать нулевой прямоугольник в opencv :: Mat без цикла

0

какой эффективный способ сделать специальный блок opencv :: Mat zero? (без цикла)

Mat freq;

// Set some frequencies to 0
for (int y=0; y<freq.rows; y++)
{
    for (int x=Start; x<freq.cols; x++)
    {
        if (x>Start || y>Start)
            freq.at<double>(y,x) = 0.0;
    }
}
// Set some frequencies to 0
for (int y=Start; y<freq.rows; y++)
{
    for (int x=0; x<freq.cols; x++)
    {
        freq.at<double>(y,x) = 0.0;
    }
}
Теги:
opencv

2 ответа

2
Лучший ответ

Просто попробуйте ниже код

Mat src;
Mat roi  = src(Rect(x,y,width,height)); // Set Roi
roi.setTo(0); // Set all pixel to 0 on both src and roi
0

Вы можете создать нулевую матрицу. Вот ссылка. Вы можете сделать всю свою матрицу нулевой или создать меньшую нулевую матрицу и присвоить ее желаемой части исходной матрицы.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню