我正在一个在树莓派上使用opencv的项目。我遇到了一个看起来很简单的障碍,但是我无法解决该问题。首先,这是我的代码的一部分:
{
gray=cvarrToMat(py);
///cvShowImage("camcvWin", py); // display only gray channel
if(img_num%2 == 1)
{
cv::imwrite("/home/pi/test/Gray_2Image1.jpg",gray);
}
else if (img_num%2 == 0)
{
cv::imwrite( "/home/pi/test/Gray_2Image2.jpg", gray );
cv::Mat img2 = cv::imread("/home/pi/test/Gray_2Image2.jpg", 0);
cv::Mat img1 = cv::imread("/home/pi/test/Gray_2Image1.jpg", 0);
diffImage = abs(img1-img2);
imshow("diffImage", diffImage);
cv::imwrite( "/home/pi/test/Diffimage.jpg", diffImage );
}
img_num++;
Run Code Online (Sandbox Code Playgroud)
此代码没有问题。但是,如果我编辑代码以进行如下稍作修改:
{
gray=cvarrToMat(py);
///cvShowImage("camcvWin", py); // display only gray channel
if(img_num%2 == 1)
{
cv::imwrite("/home/pi/test/Gray_2Image1.jpg",gray);
cv::Mat img1 = cv::imread("/home/pi/test/Gray_2Image1.jpg", 0);
}
else if (img_num%2 == 0)
{
cv::imwrite( "/home/pi/test/Gray_2Image2.jpg", gray );
cv::Mat img2 …Run Code Online (Sandbox Code Playgroud) 我正在研究OpenCV,我有一个困惑.我经历了这个链接,我不太了解OpenCV中'='运算符的概念.
假设我声明3个矩阵如下:
Mat img1, img2, gray;
Run Code Online (Sandbox Code Playgroud)
如果我gray从相机拍摄的图像中获取矩阵并将其指定img1为如下所述,实际发生了什么?是否将数据gray复制到img1它们之间或者它们之间是否共享数据?
img1 = gray;
Run Code Online (Sandbox Code Playgroud)