#include<opencv2/opencv.hpp>
#include<iostream>
#include<math.h>
using namespace std;
using namespace cv;
Mat Demo_tv(Mat srcImage);
int main()
{
Mat noiseImage=imread("F:/picture/noiseImage.jpg",0);
Mat srcImage = imread("F:/picture/lena.jpg",0);
if(srcImage.empty())
return -1;
Mat dstImage;
dstImage=Demo_tv(noiseImage);
double snr=PSNR(srcImage,dstImage);
cout<<"snr="<<snr<<endl;
imshow("dstImage",dstImage);
imwrite("TV_denoiseImage.jpg",dstImage);
waitKey(0);
return 0;
}
Mat Demo_tv(Mat srcImage)
{
double deltaT=2;
int nCols=srcImage.cols;
int nRows=srcImage.rows;
Mat TempImage=srcImage.clone();
TempImage.convertTo(TempImage,CV_32FC1);
srcImage.convertTo(srcImage,CV_32FC1);
Mat kernelXb=(Mat_<float>(3,3)<<0,-1,0,0,1,0,0,0,0);
Mat kernelXf=(Mat_<float>(3,3)<<0,0,0,0,-1,0,0,1,0);
Mat kernelYb=(Mat_<float>(3,3)<<0,0,0,-1,1,0,0,0,0);
Mat kernelYf=(Mat_<
TV 图像降噪
最新推荐文章于 2025-05-11 14:44:54 发布