在OpenCV中编辑矩阵?

时间:2014-09-09 12:20:36

标签: opencv image-processing matrix

我正在尝试获取第一张图像,逐像素地进行一些修改并将结果写入第二张图像。

int main(int argc, char* argv[])
{
    namedWindow("Frame");
    testVid("D:\\Penguins.mp4");
    destroyAllWindows();
    return EXIT_SUCCESS;
}

void testVid(char* videoFilename)
{
    VideoCapture capture(videoFilename);
    Vec3b pixel;

    if (!capture.read(frame))
        return;
    Mat finalframe(frame.rows,frame.cols, CV_8UC3, Scalar(0, 0, 0));

    for (int i = 0; i < frame.rows; i++)
    for (int j = 0; j < frame.cols; j++)
    {

        pixel = frame.at<Vec3b>(Point(j, i));
        finalframe.at<Vec3b>(Point(j, i)) = pixel;
    }

    imshow("Frame", finalframe);
    keyboard = waitKey(30);

    capture.release();
    getchar();
}

但是,当我使用imshow()显示第二张图像时,会显示一个空白的灰色图像。

现在,即使我不选择进行任何修改,当我尝试second = first;时,我也面临类似的问题 似乎唯一有效的是first.copyTo(second);

为什么第二张图片拒绝做任何事情?

0 个答案:

没有答案