是否可以将单个像素值分配给图像的整个切片?我有例如:
img = zeros(100, 200, 3, 'uint8');
我想将值 [200, 134, 12]
赋给图像的上半部分。我能行
img(1:50, :, 1) = 200;
img(1:50, :, 2) = 134;
img(1:50, :, 3) = 12;
但是,如果可能的话,我想使用广播来进行分配。由于尺寸不匹配,以下选项不起作用:
img(1:50, :, :) = [200, 134, 12]
img(1:50, :, :) = [[200, 134, 12]]
img(1:50, :, :) = reshape([200, 134, 12], 1, 1, 3)
在这种情况下,我可以在 MATLAB 中应用广播吗?如果是,怎么办?
最佳答案
赋值运算符未列为可在 implicit expansion 中使用的运算符之一.但是,您可以将图像的上半部分设置为零并使用 plus
运算符进行广播:
img(1:50, :, :) = 0;
img(1:50, :, :) = img(1:50, :, :) + reshape([200, 134, 12], 1, 1, 3);
关于matlab - 为图像中的多个像素赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58082448/