matlab中如何保存(imwrite)二值化的图片,只有0和1两个值的?
a=[1,1,1,1,1,1,1,1,1,1,1;0,0,0,0,0,0,0,0,0,0,0;1,1,1,1,1,1,1,1,1,1,1;0,0,0,0,0,0,0,0,...
a=[1,1 ,1,1,1,1,1,1,1,1,1;0 ,0, 0,0,0,0,0,0,0,0,0;1,1,1,1,1,1,1,1,1,1,1;
0,0,0,0,0,0,0,0,0,0,0;1,1,1,1,1,1,1,1,1,1,1;0,0,0,0,0,0,0,0,0,0,0];一张图片如上数组a所示,只有1和0两个值组成,我想把它保存起来,如果直接保存,那么再读入时就全部都是0和255的分布。将其转换成uint8类型(之所以要转换,是因为我要保存的图片很大,double型数据溢出),用imwrite(a,'1.bmp');之后,图像是黑色的,这种保存方式可能是灰度范围取的是0到255,我想请教一下,怎么样将只有0和1两个值的uint8图片保存起来,并且能够正常显示(不会是全黑)?
那么如何将uint8类型的矩阵a保存成0和1,输出也是0和1呢? 展开
0,0,0,0,0,0,0,0,0,0,0;1,1,1,1,1,1,1,1,1,1,1;0,0,0,0,0,0,0,0,0,0,0];一张图片如上数组a所示,只有1和0两个值组成,我想把它保存起来,如果直接保存,那么再读入时就全部都是0和255的分布。将其转换成uint8类型(之所以要转换,是因为我要保存的图片很大,double型数据溢出),用imwrite(a,'1.bmp');之后,图像是黑色的,这种保存方式可能是灰度范围取的是0到255,我想请教一下,怎么样将只有0和1两个值的uint8图片保存起来,并且能够正常显示(不会是全黑)?
那么如何将uint8类型的矩阵a保存成0和1,输出也是0和1呢? 展开
5个回答
展开全部
a矩阵中的值是0和1,不知道是什么类型,如果是double型的话你把它转化成uint8的话,那就是它的灰度值就是0和1,你保存后显示当然是黑色;如果是uint8型的话,灰度值0-255,那么0和1肯定是黑色。
我在matlab中输入a矩阵,系统认为它是double型,imwrite(a,'a.bmp');读入保存后的图像如下:
255 255 255 255 255 255 255 255 255 255 255
0 0 0 0 0 0 0 0 0 0 0
255 255 255 255 255 255 255 255 255 255 255
0 0 0 0 0 0 0 0 0 0 0
255 255 255 255 255 255 255 255 255 255 255
0 0 0 0 0 0 0 0 0 0 0
你如果想要0和1的话,直接将读入的图像im2double下,结果如下:
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
如果你将a转化成uint8型,再保存,结果如下:
a=uint8(a)
a =
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0%%转化后,灰度值就为0和1,显示a肯定为全黑
>> imwrite(a,'a.bmp')
>> d=imread('D:\Program Files\work\a.bmp')
d =
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0%%读入的d也为uint8型
我在matlab中输入a矩阵,系统认为它是double型,imwrite(a,'a.bmp');读入保存后的图像如下:
255 255 255 255 255 255 255 255 255 255 255
0 0 0 0 0 0 0 0 0 0 0
255 255 255 255 255 255 255 255 255 255 255
0 0 0 0 0 0 0 0 0 0 0
255 255 255 255 255 255 255 255 255 255 255
0 0 0 0 0 0 0 0 0 0 0
你如果想要0和1的话,直接将读入的图像im2double下,结果如下:
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
如果你将a转化成uint8型,再保存,结果如下:
a=uint8(a)
a =
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0%%转化后,灰度值就为0和1,显示a肯定为全黑
>> imwrite(a,'a.bmp')
>> d=imread('D:\Program Files\work\a.bmp')
d =
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0%%读入的d也为uint8型
展开全部
a矩阵中的值是0和1,不知道是什么类型,如果是double型的话你把它转化成uint8的话,那就是它的灰度值就是0和1,你保存后显示当然是黑色;如果是uint8型的话,灰度值0-255,那么0和1肯定是黑色。
我在matlab中输入a矩阵,系统认为它是double型,imwrite(a,'a.bmp');读入保存后的图像如下:
255 255 255 255 255 255 255 255 255 255 255
0 0 0 0 0 0 0 0 0 0 0
255 255 255 255 255 255 255 255 255 255 255
0 0 0 0 0 0 0 0 0 0 0
255 255 255 255 255 255 255 255 255 255 255
0 0 0 0 0 0 0 0 0 0 0
你如果想要0和1的话,直接将读入的图像im2double下,结果如下:
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
如果你将a转化成uint8型,再保存,结果如下:
a=uint8(a)
a =
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0%%转化后,灰度值就为0和1,显示a肯定为全黑
>> imwrite(a,'a.bmp')
>> d=imread('D:\Program Files\work\a.bmp')
d =
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0%%读入的d也为uint8型
我在matlab中输入a矩阵,系统认为它是double型,imwrite(a,'a.bmp');读入保存后的图像如下:
255 255 255 255 255 255 255 255 255 255 255
0 0 0 0 0 0 0 0 0 0 0
255 255 255 255 255 255 255 255 255 255 255
0 0 0 0 0 0 0 0 0 0 0
255 255 255 255 255 255 255 255 255 255 255
0 0 0 0 0 0 0 0 0 0 0
你如果想要0和1的话,直接将读入的图像im2double下,结果如下:
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
如果你将a转化成uint8型,再保存,结果如下:
a=uint8(a)
a =
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0%%转化后,灰度值就为0和1,显示a肯定为全黑
>> imwrite(a,'a.bmp')
>> d=imread('D:\Program Files\work\a.bmp')
d =
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0%%读入的d也为uint8型
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a矩阵中的值是0和1如果是double型的话你把它转化成uint8的话,那就是它的灰度值就是0和1,你保存后显示当然是黑色;如果是uint8型的话,灰度值0-255,那么0和1肯定是黑色。
我在matlab中输入a矩阵,系统认为它是double型,imwrite(a,'a.bmp');读入保存后的图像如下:
255 255 255 255 255 255 255 255 255 255 255
0 0 0 0 0 0 0 0 0 0 0
255 255 255 255 255 255 255 255 255 255 255
0 0 0 0 0 0 0 0 0 0 0
255 255 255 255 255 255 255 255 255 255 255
0 0 0 0 0 0 0 0 0 0 0
你如果想要0和1的话,直接将读入的图像im2double下,结果如下:
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
如果你将a转化成uint8型,再保存,结果如下:
a=uint8(a)
a =
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0%%转化后,灰度值就为0和1,显示a肯定为全黑
>> imwrite(a,'a.bmp')
>> d=imread('D:\Program Files\work\a.bmp')
d =
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0%%读入的d也为uint8
我在matlab中输入a矩阵,系统认为它是double型,imwrite(a,'a.bmp');读入保存后的图像如下:
255 255 255 255 255 255 255 255 255 255 255
0 0 0 0 0 0 0 0 0 0 0
255 255 255 255 255 255 255 255 255 255 255
0 0 0 0 0 0 0 0 0 0 0
255 255 255 255 255 255 255 255 255 255 255
0 0 0 0 0 0 0 0 0 0 0
你如果想要0和1的话,直接将读入的图像im2double下,结果如下:
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
如果你将a转化成uint8型,再保存,结果如下:
a=uint8(a)
a =
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0%%转化后,灰度值就为0和1,显示a肯定为全黑
>> imwrite(a,'a.bmp')
>> d=imread('D:\Program Files\work\a.bmp')
d =
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0%%读入的d也为uint8
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不用他了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询