MATLAB 板


LINE

读取图片档(tif) 假设图片档是叫a A=imread(a.tif) 所以举阵A 里面都是uint8的格式 (都是整数) 但我需要运算 比如 B=(36*A)/23 之类的 总之就是做加减乘除 会出现小数 因为我想保留这些小数 (因为需要这小数去分析 才会比较明显) 为了要保留小数 所以加了double这个指令 不然uint8的格式 怎麽加减乘除都还只保留整数 所以我在运算的时候 变成这样 B=36*double(A)/23 问题来了 加了double 却出现的这个错误 ??? Error using ==> image Error using ==> image TrueColor CData contains element out of range 0.0 <= value <= 1.0 Error in ==> imagesc at 19 hh = image(varargin{1},'CDataMapping','scaled'); Error in ==> Untitled_Tb at 45 imagesc(B); 拜托 高手帮忙解决 以2000p当小小的回馈了 ------------------- 这是我大体的程式 B=imread(A); rad61 = (Lmax61-Lmin61)./(Qcalmax61-Qcalmin61).*((B)-Qcalmin61)+Lmin61; |加double的地方 (Lmax61 Lmin61 Qcalmax61 Qcalmin61) 这些都是常数 idx = find(real(rad61) <= 0.); rad61(idx) = NaN; T61=K2./(log((double(K1./rad61))+1))-273.16; T61(T61<=-5)=NaN; T61(T61>35)=NaN; figure(1); imagesc(T61); 因为我画是跟地区温度有关的图 所以会需要到0~35左右 然後真的用手去验算 值也差不多是0~35 所以感觉是画图的指令 imagesc(T61); 错误 想请问 还有其他画图推荐的指令 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.32.184.86
1F:→ abc01251:你确定错在那行吗 我打 没问题 可以过 04/16 21:49
2F:→ abc01251:imagesc(uint8(B)); << 这边吧~ 04/16 21:52
3F:→ doom8199:因为 imagesc 函式要求值要介於 0~1 04/16 21:52
4F:推 vincent59:我也觉得没问题??? 04/16 21:52
5F:→ doom8199:若你是读取 rgb 图片,要先除以 255.0 04/16 21:53
6F:→ vincent59:所以原po问的是秀图的部分?? 04/16 21:53
恩恩 很像真的是後面我画imagesc(B) 需要在0~1之间 但我的图 希望能显示 0~35之间 就是温度的 可以不要只能在0~1之间吗?? 感谢
7F:→ doom8199:看错误讯息是如此@@'' 04/16 21:53
※ 编辑: y1027330 来自: 114.32.184.86 (04/16 22:03)
8F:推 vincent59:你可以参考10455 04/16 21:59
9F:推 abc01251:我加 uint8 就过了 你可以试试看 04/16 22:08
10F:→ abc01251:不过数字会跑掉XD 04/16 22:08
11F:推 okgogogo:不就只能0~1...B那麽大 04/16 22:09
※ 编辑: y1027330 来自: 114.32.184.86 (04/16 22:14)
12F:→ okgogogo:温度应该用 pcolor or contourf or colorbar 请查help 04/16 22:14
13F:→ y1027330:不加double 数字只会整是 我需要他的小数 04/16 22:14
※ 编辑: y1027330 来自: 114.32.184.86 (04/16 22:16)
14F:→ y1027330:V大 我有参考你在那边的推文 但我造着做就是一片黑 04/16 22:17
※ 编辑: y1027330 来自: 114.32.184.86 (04/16 22:19)
15F:推 doom8199:秀图有很多种方法,重点是你想要呈现何种数据 04/16 22:21
16F:→ doom8199:例如 x 和 y 同样是介於 0~1 的数据 04/16 22:22
17F:→ y1027330:我想呈现就是真实T61的值 04/16 22:22
18F:→ doom8199:只要做个如 y = x^n, n>0 的转换 04/16 22:23
19F:→ y1027330:比如我们点开 T61这个矩阵 他是多少 就想画出多少 QQ 04/16 22:23
20F:→ doom8199:intensity 就会有所改变 04/16 22:23
21F:→ doom8199:那你就是先把你想要的数据处理好,在调整为 0~1 or 0~255 04/16 22:25
22F:推 vincent59:会一片黑因为得再将值拉回255(imshow) 04/16 22:36
23F:→ vincent59:照doom8199教的方法试看看 04/16 22:37
24F:→ y1027330:那我想要她呈现值在0~255之间 我要怎麽做?? 04/16 22:38
25F:推 vincent59:首先B的范围?如果是0~1(资料型态:uint8) 04/16 22:45
26F:→ vincent59:那不难,B=B*255; 04/16 22:45
27F:→ y1027330:B的范围是0~255 04/16 22:46
28F:→ y1027330:应该说我们读的A是0~255然後再去做一些加减乘除 04/16 22:47
29F:→ y1027330:最後经过运算 就会落在大约是0~35 左右 04/16 22:47
30F:→ y1027330:刚好可以表达我们温度 当然代的那些常数是经验式得到 04/16 22:48
31F:→ y1027330:所以我希望画出来就是能呈现大约 0~35左右的图 04/16 22:48
32F:推 vincent59:所以最後你要的range是0~35罗?? 04/16 22:49
33F:→ y1027330:没错!!!!! 04/16 22:51
34F:推 vincent59:B=36*double(A)/23 这行算出来的range是0~255?? 04/16 22:53
35F:→ doom8199:0~35 那个是数据,并非是颜色 04/16 22:53
36F:→ y1027330:对!! 但我画的图 就是想呈现 0~35这个矩阵里面的数值 04/16 22:54
37F:→ doom8199:秀图跟你数据的范围没啥太大关系 04/16 22:54
38F:→ y1027330:拜托了 有什麽拜办法 04/16 22:54
39F:→ doom8199:所以你 35 那个数据,真的就代表 nrmalize graylevel 04/16 22:55
40F:→ doom8199:0~255 中的 35 ? 04/16 22:55
41F:→ y1027330:其实也不依定是35 这个值也只是运算後 大约的最大值 04/16 22:56
42F:推 vincent59:所以是数据呢还是颜色??? 04/16 22:56
43F:→ y1027330:对阿 因为这是前人的研究 所以他们是经过经验式 04/16 22:56
44F:→ y1027330:所以会很巧的 刚好把0~255的值换算後 大约就会介於0~35 04/16 22:57
45F:→ y1027330:所以就可以表达我们地区的温度 04/16 22:57
46F:→ y1027330:然後 我就想要画出这个值 04/16 22:58
47F:→ doom8199:所以那只是数据而已. 您只是想用颜色强度or鲜艳度来表示 04/16 22:59
48F:→ doom8199:0~35 的数据. 那就跟秀图的0~1 or 0~255 没关系 04/16 22:59
<--这之前没错 後面有点不懂
49F:→ doom8199:会要你把B的data 调整为 0~1 or 0~255 04/16 23:00
50F:→ doom8199:只是要你配合现有matlab 的函式+颜色表示你的数据而已 04/16 23:01
有点听不懂 把B的data 调整为 0~1 or 0~255 ※ 编辑: y1027330 来自: 114.32.184.86 (04/16 23:02)
51F:→ doom8199:不要把 normalize 的color数据当成是你真的 0~35 数值 04/16 23:01
52F:推 doom8199:意思是,你要自己定义好颜色 c 跟数据 x 的关系 04/16 23:04
53F:→ y1027330:所以意思是 我换算後的T61 里面的值不是数值 是颜色的值 04/16 23:04
54F:→ y1027330:所以T61里面 就算是0~35 然後我就要去找一个函数 去把她 04/16 23:05
55F:→ y1027330:数值化 是这个意思吗??? 04/16 23:06
56F:推 vincent59:如同doom8199说明的 04/16 23:06
57F:→ abc01251:你的T61 是二维还三维?? 04/16 23:07
58F:推 vincent59:原po知道如何将颜色数值化吧??? 04/16 23:09
59F:→ y1027330:不知道 QQ 是三维 04/16 23:10
60F:→ abc01251:拟改成 imagesc(T61(:,:,1)); 我刚刚试过三维好像不能用 04/16 23:11
61F:推 vincent59:http://ppt.cc/I9@0 先稍微看一下 04/16 23:15
62F:→ vincent59:我先下线一下 doom8199真的满会了解别人想问什麽? 04/16 23:16
63F:→ y1027330:大约了解 我明天再问问别人 感谢两位 04/16 23:26
64F:→ doom8199:原po若还不太清楚 c 跟 x 要如何定义,就直接打 04/16 23:30
65F:→ doom8199:imshow(uint8(T61*255.0/40.0)) 04/16 23:32
66F:→ doom8199:打错,应该是 imshow(uint8((T61+5.0)*255.0/40.0)) 04/16 23:33
67F:→ y1027330:这样uint8打完 是不是会把小数点 用掉阿 我希望能保留 qq 04/16 23:56
68F:推 doom8199:若你想把它存成图档, 一样会做量化等动作阿XD 04/17 08:53
69F:→ doom8199:基本上您打 imshow((T61+5.0)/40.0)) 也是一样的意思 04/17 08:57
70F:→ doom8199:若您只是要保留资料,直接save就好,无须存成图档 04/17 08:58







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP