OpenCV Checkerboard生成 - 接收错误

时间:2017-07-23 03:45:59

标签: c++ opencv mat

我正在尝试编写一个带宽度,高度和CvType的函数,并从中创建一个棋盘图案。我当前的实现给了我错误无效参数传递给C运行时函数。

Mat MainWindow::makeCheckMat(int width, int height, int type){

int checkSize = 8;
Mat checkMat(width, height, type);

uchar color=0;
for(int i = 0 ; i < width ; i += checkSize ){
    color=~color;
    for(int j = 0 ; j < height ; j += checkSize ){

        Point topLeft(i, j);
        int bottomRightX = i + checkSize;
        int bottomRightY = j + checkSize;

        if ( bottomRightX >= width ){
            bottomRightX = width - 1;
        }
        if ( bottomRightY >= height ){
            bottomRightY = height - 1;
        }
        Point bottomRight(bottomRightX, bottomRightY);

        //THE CODE BREAKS HERE

        Mat ROI = checkMat( Rect(topLeft, bottomRight) );
        ROI.setTo(Scalar::all(color));

        color=~color;
    }
}

return checkMat;

这是在代码中断之前// CODE BREAKS HERE位置打印的所有值的日志...

width:   799
height:  801
i:  0
j:  792
bottomRightX:  8
bottomRightY:  800
Invalid parameter passed to C runtime function.
Invalid parameter passed to C runtime function.

0 个答案:

没有答案