我是opencv的新手,我遇到了这个问题。。。
给定以下Mat类型(全局声明)
材质src_gray;
材料dst;
我有一个dst是一个零灰度Mat与此初始化
dst=Mat::zeros(src_gray.size(), CV_BGR2GRAY);
似乎我无法编辑dst图像上的像素(当我使用imwrite时,它会给我一个黑色图像,好像我什么都没做一样)。
这是我目前拥有的代码:
for(int i=0;i<=dst.cols;i++)
for(int j=0;j<=dst.rows;j++)
{
dst.at<uchar>(j,i)=255;
}
imwrite( "img_res.png", dst );
结果图像具有它应该具有的维度,但它是一个黑色像素图片,难道它不应该是一个白色像素图像吗?
如果我提到我有3个全球Mat,我不知道这是否相关
Mat image;
Mat src_gray;
Mat dst;
以这种方式初始化:
image = imread( argv[1], 1 );
cvtColor( image, src_gray, CV_BGR2GRAY );
然后,我将它们发布为:
image.release();
dst.release();
src_gray.release();
我得到的另一个问题是,当我释放Mat(在执行期间)时,我得到“Segmentation fault(core dumped)”错误。(我的代码来自Linux Ubuntu distric)