您好我正在尝试绘制图像。
我有三个矩阵:
矩阵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)
是否有可用于绘制此功能的功能,还是我必须实现此功能?任何建议如何实现这一点将不胜感激。谢谢。
答案 0 :(得分:0)
是完整图像吗? A,B和C是1D,对吗?如果是这样,您可以在相应的索引处创建具有Matrix 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]);