gpt4 book ai didi

matlab - dct系数如何做直方图显示双量化效果?

转载 作者:太空宇宙 更新时间:2023-11-03 20:35:09 25 4
gpt4 key购买 nike

我想做的是图像量化 DCT 系数的直方图,以检测双量化效果。当我使用 hist(x) 时,它会将其分类为 10s,如果我将其更改为 hist(x,20) 或 30,它并不会真正显示 DQ 效果。那么有没有更好的方法呢?这是代码:在 matlab 上

im = jpeg_read('image');
% Pull image information - Lum, Cb, Cr
lum = im.coef_arrays{im.comp_info(1).component_id};
cb = im.coef_arrays{im.comp_info(2).component_id};
cr = im.coef_arrays{im.comp_info(3).component_id};
% Pull quantization arrays
lqtable = im.quant_tables{im.comp_info(1).quant_tbl_no};
cqtable = im.quant_tables{im.comp_info(2).quant_tbl_no};
% Quantize above two sets of information
qcof = quantize(lum,lqtable);
bqcof = quantize(cb,cqtable);
rqcof = quantize(cr,cqtable);
hist(qcof,30); %lum quantized dct coefficient histogram

最佳答案

首先,不需要对系数进行量化。其次,可以通过绘制特定频率的直方图来观察效果。您需要遍历 block 中的各个位置并寻找模式。绘制直方图的 FFT 有帮助。

这是matlab代码:

imJPG2 = jpeg_read('foto2.jpg');
lum = imJPG2.coef_arrays{imJPG2.comp_info(1).component_id};
for i = 1:8
for j = 1:8
r = lum( i:8:end, j:8:end );
histogram(r(:), 'binmethod','integers');
pause();
end
end

更多细节和背景可以在本文中找到:http://www.sciencedirect.com/science/article/pii/S0031320309001198

关于matlab - dct系数如何做直方图显示双量化效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22732860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com