matlab 图像处理输入输出的格式问题

%!!!!!!出了好几次错误了 引以为戒!!!!!!!


% 一般来说输入single的都要除以255.0 所以除了PSNR计算还是都用uint8
%如果处理数据需要转换为浮点数 ycbcr需要进行归一化即进行除255.0 
% 意思就是如果rgb2ycbcr就需要输入[0,1]的数 如果要恢复的话就需要
%再乘255.0 但是uint8格式的话就不需要 所以直接用uint8格式即可
%这个只需要对应好格式就行都用single就转化为0-1 或者都用uint8 因此直接unit8操作就行
%!!!!!所以说还是用unit8好  但是除了psnr要用single--计算情况


%以rgb2ycbcr举例,输入uint8格式的话 对应是没问题的
%但是输入single格式的话,就需要我们自己把input给归一化到[0.0,1.0]才行 即需要自己除以255.0
%这样对应结果才是一致的

%代码如下:这样取得的结果才是一致的
imgpath = ['D:/pku/new desktop/dataset-DIV2k/Train/0001.png']
duan = imread(imgpath);
duan_single = single(duan)/255.0;

duan_trans = rgb2ycbcr(duan);
duan_trans = duan_trans(:,:,1);
duan_single_trans = rgb2ycbcr(duan_single)*255.0;
duan_single_trans = duan_single_trans(:,:,1);

 

发布了16 篇原创文章 · 获赞 1 · 访问量 6138
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览