创建二进制图像
问题描述:
我有一个关于在MATLAB中创建二进制图像的问题。 我想用3907x3713
像素创建一个二进制图像。每个像素由矩阵中的位置表示(我假设)。除了1000-1500
(x
轴)和2000-2500
(y
轴)之间的像素外,每个像素都必须是黑色的(所以我猜的值为0
),但这些必须是白色的(值为256
,我猜)。创建二进制图像
首先,我创建了一个有3907
行和3713
列的矩阵。我用零填充(通过函数zeros
)。但是,我坚持要找到一个简单的方法来取代一些值为256
。
谢谢你的时间和帮助。
答
零函数返回一个数组double。
要创建只有黑色和白色一个真正的二进制图像,您的数组转换为逻辑类型:
im=logical(zeros(3907, 3713));
这将有助于significally使用(64倍)的内存更少。
在这样的图像中0用于黑色,1用于白色。没有其他值是允许的。
所以,要创造出一些白色像素使用
im(1000:1500,2000:2500) = 1;
怎么样'IM(1000:1500,2000:2500)= 255'?如果类型是双倍的,那么1对应于白色。只有uint8,255(而不是256!)是白色的。 – hbaderts
我会马上尝试,谢谢回复! – Victor