我正在使用深度为24( PNG 格式)的800 x 800像素图像。我认为这意味着3 x 8位。这些图像只是黑白(0或255)。 我希望将此深度减少到8位,因为*,当我在matlab中处理这些图像时,*我创建了一个800 x 800 x 3矩阵,其计算成本比计算2D矩阵更大。
我的想法是在 matlab 中对矩阵的第一层进行子集化,但似乎我已经丢失了信息,因为我的矩阵中没有任何内容。
`Im4=Im4(1:800,1:800);`
有什么想法吗?
我是图像处理的新手,我可能不知道基础......
答案 0 :(得分:1)
rgb2gray
可能是将M-by-N-by-3图像转换为M-by-N最安全的方式。
答案 1 :(得分:1)
这只是一个替代方案(因为你是matlab图像处理的新手,很高兴知道不同的方法)
gray_scale = Im4(:,:,1);
此方法仅适用,因为您的图像已经是灰度(这可能意味着红色=绿色=蓝色)。代码所说的是来自Im4
all rows
和all columns
channel 1
并将其存储在名为gray_scale
的变量中,因为RGB图像的通道1指的是红色信道。
其他评论也在谈论rgb图像或24位灰度。一个简单的检查方法是拍摄ORIGINAL图像(处理前)并输入size(MY_IMAGE_NAME_HERE)
,这样可以给你2个或更多数字。