【发布时间】:2016-09-03 07:04:15
【问题描述】:
我是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 image;
Mat src_gray;
Mat dst;
以这种方式初始化:
image = imread( argv[1], 1 );
cvtColor( image, src_gray, CV_BGR2GRAY );
然后,我将它们发布为:
image.release();
dst.release();
src_gray.release();
我遇到的另一个问题是,当我释放 Mats(在执行期间)时,我收到“分段错误(核心转储)”错误。 (我的代码来自 Linux Ubuntu 发行版)
【问题讨论】:
标签: c++ image opencv pixel grayscale