【发布时间】:2017-07-15 03:51:10
【问题描述】:
我正在研究 WMSN 中的错误控制。我想通过错误概率为 p 的二进制对称通道传输视频。所以我在每个 gop 中都有帧(图像),由矩阵显示。
每个矩阵元素都有十进制值,可能是正数或负数。正如here 解释的那样,我需要将整个矩阵转换为二进制流。我用过
reshape(dec2bin(typecast(b,'uint8'),8).',1,[])
用于将元素转换为二进制流,但我无法使用
返回确切的数字typecast(uint8(bin2dec(reshape(m,8,[]).')),'double').
另一方面,我认为为了获得正确的误码率,我必须将整个矩阵转换为一个比特流,我不知道该怎么做。并再次将它们转换为图像的测量值矩阵。
【问题讨论】:
-
我认为您需要
m = reshape(dec2bin(typecast(b(:),'uint8'),8).',1,[]),然后用reshape(typecast(uint8(bin2dec(reshape(m,8,[]).')),'double'),size(b))转换回来(如果您从该评论粘贴,请注意最后一个逗号之前可能不需要的零宽度字符) -
@LuisMendo 感谢您的回答。但是有错误
The input character is not valid in MATLAB statements or expressions. -
正如我在之前的评论中所说,一些不需要的零宽度字符不知何故潜入。我已将其发布为答案,从而避免了这种情况
标签: image matlab video matrix binary