matlab中,如何把一个元素值全为1或0的矩阵存储为二值图像?

作者&投稿:豆卢贞 (若有异议请与网页底部的电邮联系)
matlab 怎么存储为二值图~

a矩阵中的值是0和1,不知道是什么类型,如果是double型的话你把它转化成uint8的话,那就是它的灰度值就是0和1,你保存后显示当然是黑色;
如果是uint8型的话,灰度值0-255,那么0和1肯定是黑色。

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型

A=zeros(300,400);
J=mat2gray(A);%mat是matrix的前三个字母,gray是灰度图的意思,2即为to
imshow(J)


如何用modelsim编译systemC的设计
大家同时也可以看到,现在在ModelSim等仿真软件中,SystemC使用起来跟Verilog\/VHDL一样,非常方便。举一个例子,我们假如想做DVB-S2的LDPC,我们一定会先用C++(M atlab也可以)写仿真程序,验证算法的正确性。然后假设我们已经确定了目标ASIC的架构,打算用Verilog做RTL设计。现在既然C++代码的验证部分可以...

怎样将matlab中的数据导入到excel中
将matlab中的数据导入excel的方法:1.例如matlab将矩阵或数组中国的信息全部导出可以用xlswrite函数,首先打开matlab,输入代码,如图:2.然后找到要存放文件的位置复制绝对路径(致谢文件名的话就会存放在当前目录中),如图以f盘根目录为例)3.然后写xlswrite函数,格式如图,具体格式课参看help xlswrite,如图...

matlab中.fig文件转化为.m文件
有个生成matlab代码,在文件下的。

怎样顺利安装数学mathlab软件?
ATLAB要用到CPU的数学计算模块,而MATLAB默认的是INTEL的CPU,所以AMD的CPU一般都会遇到安装好后打开自动关闭的问题。 解决办法:先确认安装好后(假如安装在D盘) 在此路径下D:\\MATLAB7\\bin\\win32有一个叫做atlas_Athlon.dll的文件。然后在我的电脑上右击点”属性”,再在”高级”中点”环境变量”,在”系统变量”中...

振动 离散系统中边界条件重要么 为什么
与流体动水压力有关的附加项包括附加阻 尼矩阵、 附加质量矩阵和附加刚度矩阵,其中附加质量矩阵与流体速度无关,下面分别讨论只考虑附加质量阵和综合考虑附加项这两种情况下PPR保温管道的自振频率。 ( 1)只考虑附加质量矩阵即不考虑流速只考虑附加质量矩阵即不考虑流速影响时,利用M atlab编制程序计算...

南汇区14740098474: matlab怎么表示一个向量,里面的元素全都相等 -
乔马维血:[答案] 可以定义这样的向量.例如x=zeros(n,1),生成n*1的0向量,x=ones(n,1),生成n*1的全1向量.那么如果要生成都是k的向量,就可以x=k*ones(n,1).即可. 其他照此类推,应该是可以实现的.欢迎追问~

南汇区14740098474: 在matlab里面什么叫全元素赋值法?是怎样赋值的? -
乔马维血: b=[1 2 3 4 5] a[k+1]=b[k] 从上面的例子知道,b有5个元素,a有6个元素,首先可以对a进行初始化,然后按照你给出的规则,为a中的元素赋值.具体示例如下: a=zeros(1,length(b)+1); %a比b多一个元素,为1行,length(b)+1列的全0向量 for i=1:length(b) a(i+1)=b(i); % a[k+1]=b[k] end matlab中向量编号从1开始的,所以向量a的第一个元素,没有做修改,仍认为初始值0.

南汇区14740098474: MATLAB中矩阵的每个元素都加上同一个值怎么做 -
乔马维血: 乘以eps再加上A就行了 A+eps*ones(m,n)产生一个全为1的矩阵,所以你先用ones(m上面楼主说的A+eps可以 还有就是你的A矩阵是m*n的

南汇区14740098474: matlab怎么生成一个元素全部是正的矩阵? -
乔马维血: 生成一个随机矩阵,加个绝对值的函数就好,abs(randn(m,n))

南汇区14740098474: Matlab中,怎样让一个值遍历一个规定的范围. 比如说让x取遍1~10的所有整 -
乔马维血: 遍历即可,我用matlab编的简单程序,其他语言类似 A=[11.61,25.38,44.8,59.25, 121.66,126.93 ,142.79,155.07,246.24,288.44,389.46,451.14,472.22,557.47,638.59,688.62,746.72,891.7,979.14,1028.66,1038.21,1153.38,1634.87,2760.68]; n=length...

南汇区14740098474: matlab中,如何把一个元素值全为1或0的矩阵存储为二值图像? -
乔马维血: A=zeros(300,400); J=mat2gray(A);%mat是matrix的前三个字母,gray是灰度图的意思,2即为to imshow(J)

南汇区14740098474: matlab怎么对矩阵内元素进行全排列?排列后依旧是一个矩阵,不是一串字符,保持二维的特性 -
乔马维血: 可以用reshape函数. 例如,行向量: a = [1 2 3 4 5 6] 执行下面语句把它变成3行2列:b = reshape(a,3,2) 执行结果: b = 1 4 2 5 3 6 若a=[1 2 3 4 5 6 7 8 9] 使用reshpe后想得到 b=[1 2 3 4 5 6 7 8 9]只需要将a转置一下就可以了: b=reshape(a',1,9) 不知道有没有帮你解决问题?

南汇区14740098474: 怎么用matlab把一个矩阵的所有元素都变为1 -
乔马维血: 可这样: a=magic(6);%原矩阵 b=ones(size(a));%全1矩阵

南汇区14740098474: matlab 中数组元素怎样调用?还有怎样将一个数组里面的数全加起来(数很多)? -
乔马维血: 用个for循环不就可以了吗,定义一个i,有多少元素就定义多少元素,然后一个个加起来就可以了.

南汇区14740098474: matlab 如何求一个矩阵所有元素的绝对值的和 -
乔马维血: 求一个矩阵A所有元素的绝对值的和的实现方法为:在matlab命令窗口输入代码: sum(sum(abs(A))),其中用到的两个函数的功能如下: 1、abs(A) 求矩阵A中每个元素的绝对值 2、sum(A) 沿着矩阵A的第一个维度计算元素之和.当A为向量时,...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网