我想知道python或MATLAB中是否有可用的代码可以绘制psnr与比特率的关系图?我在网上发现了很多问题,但没有一个试图解释这份工作的过程
因此,您需要比较图像的比特率(即每像素比特数,bpp(与峰值信噪比(PSNR(。
这可以简单地通过从某个参考图像开始,然后创建具有不同压缩级别(不同比特率/bpp(的该参考图像的许多副本来完成。
计算并记录每个图像副本的不同比特率。
bpp = (Size of image in bits) / (number of pixels in image)
然后将图像的每个副本与原始参考图像进行比较,以获得PSNR。
在MATLAB中,这可以通过psnr()
函数来完成(这需要MATLAB图像处理工具箱。(MATLAB的语法是[peak_snr, snr] = psnr( copy_image, original_image )
在python中,一个选项是使用OpenCV的PSNR函数。OpenCV的语法为cv2.psnr(img1, img2)
然后,一旦你有了相应的比特率psnr值,你就可以绘制它并完成它。