Matlab中的矩阵和图像有什么区别?

时间:2014-06-08 05:04:22

标签: image matlab matrix png

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

但是,如果我使用test = zeros(nrows, ncols, 3)创建自己的矩阵,并尝试使用test(:, :, :) = pic复制图片并尝试使用imshow(test),则无效。我可以逐个元素地比较testpic它们是相同的,但是我不能减去这两个或者我得到错误

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

如何创建矩阵并将图像中的像素分配给它并仍然将矩阵视为图像?我试图这样做的原因是我有很多图片我试图组合成一个更大的图片,所以我需要预先创建一个大矩阵,然后将每个单独图像的像素复制到更大的矩阵,但这个更大的矩阵我使用imshowimwrite时不再将其视为图片。

1 个答案:

答案 0 :(得分:1)

错误告诉你你错过了什么。重要的是class变量。图像有一些类类型(uint8,uint16 ...),matlab中的通用矩阵,除非另有说明double。尝试定义

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