2015-10-06 131 views
0

我有一个关于在MATLAB中创建二进制图像的问题。 我想用3907x3713像素创建一个二进制图像。每个像素由矩阵中的位置表示(我假设)。除了1000-1500x轴)和2000-2500y轴)之间的像素外,每个像素都必须是黑色的(所以我猜的值为0),但这些必须是白色的(值为256,我猜)。创建二进制图像

首先,我创建了一个有3907行和3713列的矩阵。我用零填充(通过函数zeros)。但是,我坚持要找到一个简单的方法来取代一些值为256

谢谢你的时间和帮助。

+3

怎么样'IM(1000:1500,2000:2500)= 255'?如果类型是双倍的,那么1对应于白色。只有uint8,255(而不是256!)是白色的。 – hbaderts

+0

我会马上尝试,谢谢回复! – Victor

回答

0

函数返回一个数组double

要创建只有黑色和白色一个真正的二进制图像,您的数组转换为逻辑类型:

im=logical(zeros(3907, 3713)); 

这将有助于significally使用(64倍)的内存更少。

在这样的图像中0用于黑色,1用于白色。没有其他值是允许的。

所以,要创造出一些白色像素使用

im(1000:1500,2000:2500) = 1;