資源簡(jiǎn)介
使用OPENCV3.0.0 C++寫的測(cè)試兩幅圖片之間的對(duì)比指標(biāo) PSNR SSIM指標(biāo)
代碼片段和文件信息
#include
#include
#include
using?namespace?std;
#include
#include
#include
using?namespace?cv;
void?main()
{
Mat?I1?=?imread(“D:/results/window-0.jpg“1);
Mat?I2?=?imread(“D:/results/window-1.jpg“?1);
double?psnrssim;
Mat?s1;
absdiff(I1?I2?s1);???????//?|I1?-?I2|AbsDiff函數(shù)是?OpenCV?中計(jì)算兩個(gè)數(shù)組差的絕對(duì)值的函數(shù)
s1.convertTo(s1?CV_32F);??//?這里我們使用的CV_32F來計(jì)算,因?yàn)?位無符號(hào)char是不能進(jìn)行平方計(jì)算
s1?=?s1.mul(s1);???????????//?|I1?-?I2|^2
Scalar?s?=?sum(s1);?????????//對(duì)每一個(gè)通道進(jìn)行加和
double?sse?=?s.val[0]?+?s.val[1]?+?s.val[2];?//?sum?channels
if?(sse?<=?1e-10)?//?對(duì)于非常小的值我們將約等于0
psnr?=?0;
else
{
double??mse?=?sse?/?(double)(I1.channels()?*?I1.total());//計(jì)算MSE
double?psnr?=?10.0*log10((255?*?255)?/?mse);
cout?<“PSNR=“?< cout?<“\n“?< }
I1.convertTo(I1?CV_32F);
I2.convertTo(I2
評(píng)論
共有 條評(píng)論