Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 在Matlab中,矩阵和图像之间的区别是什么?_Image_Matlab_Matrix_Png - Fatal编程技术网

Image 在Matlab中,矩阵和图像之间的区别是什么?

Image 在Matlab中,矩阵和图像之间的区别是什么?,image,matlab,matrix,png,Image,Matlab,Matrix,Png,我可以将.png图像保存为pic=imread(image\u name),并将其视为包含大小的矩阵,以便检索[nrows,ncols,~]=size(pic)。然后,我可以使用imshow(pic)轻松显示此图像 但是,如果我使用test=zero(nrows,ncols,3)创建自己的矩阵,并尝试使用test(:,:,:)=pic复制图像,然后尝试使用imshow(test)则无法工作。我可以逐元素比较test和pic它们是相同的,但我不能减去这两个元素,否则我会得到 Error using

我可以将.png图像保存为
pic=imread(image\u name)
,并将其视为包含大小的矩阵,以便检索
[nrows,ncols,~]=size(pic)
。然后,我可以使用
imshow(pic)
轻松显示此图像

但是,如果我使用
test=zero(nrows,ncols,3)
创建自己的矩阵,并尝试使用
test(:,:,:)=pic
复制图像,然后尝试使用
imshow(test)
则无法工作。我可以逐元素比较
test
pic
它们是相同的,但我不能减去这两个元素,否则我会得到

Error using  - 
Integers can only be combined with integers of the same class, or scalar doubles.

如何创建矩阵并将图像中的像素分配给它,并且仍然将矩阵视为图像?我之所以这么做,是因为我有很多图片要合并成一个更大的图片,所以我需要事先创建一个大矩阵,然后将每个单独图像中的像素复制到更大的矩阵中,但是,当我使用
imshow
imwrite
时,这个较大的矩阵不再被视为图像,错误是告诉您错过了什么。重要的是变量的大小。图像具有某些类类型(uint8、uint16…),这是matlab中的通用矩阵,除非另有说明,否则为
double
。试图定义

 test = zeros(size(pic),class(pic));