C_and_CPP 板


LINE

我想要读入一个raw的512*512灰阶图档作滤波 所以byte为单位将每个pixel存进矩阵里 又因为pixel里面的值应为0~255而非-128~127 所以我将矩阵宣告如下 unsigned char img[512][512]; 接下来因为用3*3的mask与原图作convolution後 我把它存到一个新的矩阵(512+3-1=514) unsigned char newimg[514][514]; 後来发现因为conv出来的数值有可能超过255或低於0 於是作了如下的for loop做修正 for (int i=0; i<514; i++) for (int j=0; j<514; j++) { if (newimg[i][j]>255) newimg[i][j]=255; else if (newimg[i][j]<0) newimg[i][j]=0; } 但发现build会出现 warning: comparison is always false due to limited range of data type 我想可能是char无法跟整数直接比较大小 於是用了一个很笨的方法... 重新宣告一个double a 把img的值先assign给它再做比较 程式可以跑而且图形也是正确的 但仍然会出现 warning: converting to `unsigned char' from `double' 想问大家要怎样作才能让warning不再出现 而且又可以让unsigned char里头的值比大小? 谢谢! --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.35.1.66
1F:→ blexx:newimg已经存成unsigned char,不可能比255大。 10/27 10:04
2F:→ blexx:要在存进去之前就先检查 10/27 10:05
3F:推 VictorTom:计算过程可能uchar不够放就用比较大的变数型态暂存. 10/27 10:31
4F:→ VictorTom:不然等到写回uchar array以後才判断就没意义了@_@" 10/27 10:32
5F:→ ray3226:楼上两位大大 所以我才用一个较大的变数型态double a暂存 10/27 18:40
6F:→ ray3226:而且再存进去之前先检查 我的意思是这样会产生warning.... 10/27 18:41
7F:推 VictorTom:贴一下code来看, 从你贴出来的部份看不出有做这种事@_@" 10/27 18:56
8F:→ VictorTom:你的warning发生在 if(newimg[i][j]>255) 这行, 它明白 10/27 18:57
9F:→ VictorTom:说, newimg[i][j]是uchar, 最大就255, 你判断它有没有大 10/27 18:58
10F:→ VictorTom:於255这肯定会fail. <0也一样, 一个值域在0~255的变数, 10/27 18:59
11F:→ VictorTom:(array中的一个element在这里可以当一个变数来看待) 10/27 18:59
12F:→ VictorTom:你判断它是否<0或者>255这些都肯定都是false(上面错字). 10/27 19:00
13F:推 VictorTom:我看到後半段的问题了Orz 在算好的double assign给 10/27 19:03
14F:→ VictorTom:uchar变数前用显示转型, 如img = (uchar)(a + 0.5); 10/27 19:04
15F:→ VictorTom:+0.5是四舍五入, 你自己依需求决定有没有必要吧:) 10/27 19:04
16F:→ VictorTom:warning是提醒你你的assignment可能有忽略到这个问题, 10/27 19:05
17F:→ VictorTom:强转型就是跟compiler说, 我就要这麽做, 听我的就对了XD 10/27 19:05
18F:→ ray3226:谢谢V大 之前学C++时没学过「显示转型」 所以说如果不+0.5 10/27 19:11
19F:→ ray3226:它会无条件舍去吗? 10/27 19:11
20F:推 VictorTom:忘了是显式还是强制转型, 小弟没看原文书, 术语请其他大 10/27 19:14
21F:→ VictorTom:大补充吧XD 是的, 基本型态浮点转整数一定无条件舍去:) 10/27 19:15
22F:→ VictorTom:刚想到, 考虑有负数, 还是说round_to_zero好了....@_@" 10/27 19:16
23F:→ ray3226:十分感谢V大 刚刚试成功了! 最近在学ICS影像处理的专题 10/27 19:29
24F:→ ray3226:C++很多都忘了 刚刚爬V大文章似乎对影像颇有研究 以後请多 10/27 19:30
25F:→ ray3226:多指教! 10/27 19:31
26F:推 VictorTom:什麽??对影像处理有研究!?那你一定是认错人了....XD 10/27 19:41







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