嗨,我正在尝试绘制图像。
我有三个矩阵:
矩阵A:X坐标
矩阵B:Y坐标
矩阵C:图像灰度
例如:
A = [1, 1; B = [1, 2; C = [1, 2;
2, 2] 1, 2] 3, 4]
我将在X(1),Y(1)处绘制一个值为C(1)的点。值1绘制为(1,1)值2绘制为(1,2,)值3绘制为(2,1)值4绘制为(2,2)
有没有可以用来绘制此图的函数,或者我必须实现它?任何建议如何实现这一点将不胜感激。谢谢你。
它是完整图像吗?A,B和C是一维的,对吗?如果是这样,则可以使用矩阵C的值在相应索引处创建2D数组,将其转换为图像并显示图像。
img = zeros(max(max(B)),max(max(A))); %initialize the new matrix
for i = 1:numel(C) %for each element in C
img(B(i),A(i)) = C(i); %fill the matrix one element at a time
end
img = mat2gray(img); %optional. More information in edit
imshow(img); %display the image
假设最小索引值为1。如果为0,则必须将1加到所有索引上。
我的matlab有点生锈,但是应该可以。
编辑:有什么理由为什么它们是二维数组开始的?无论如何,无论哪种情况,我都将我的答案更新为可工作的。
edit2:mat2gray将在0到1之间缩放您的值。如果您的值已经是灰度的,则没有必要。如果您的值在另一个范围内,但不一定包含最小值和最大值,则可以指定最小值和最大值。例如,如果您的范围是0到255,请使用mat2gray(img,[0,255]);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句