#include "stdafx.h"
#include<iostream>
#include "highgui.h"
#include "cv.h"
#include "math.h"
using namespace cv;
using namespace std;int _tmain(int argc, _TCHAR* argv[])
{
IplImage* src,*src0, *dst,* imageDst,*Dest,*DEST,*DEst;  
int i,j;
src = cvLoadImage( "D:\\lena.jpg" ,0);  
src0=cvLoadImage("D:\\lena2.jpg",0);
imageDst=cvCreateImage( cvGetSize(src), IPL_DEPTH_32F,1);
Dest=cvCreateImage( cvGetSize(src), IPL_DEPTH_32F,1);
DEST=cvCreateImage( cvGetSize(src), IPL_DEPTH_32F,1);
DEst=cvCreateImage( cvGetSize(src), IPL_DEPTH_32F,1);
dst = cvCreateImage( cvGetSize(src), IPL_DEPTH_8U,1);
    cvNamedWindow( "原始图像", 0 );  
cvShowImage( "原始图像", src ); 
cvNamedWindow("运动模糊且加高斯噪声的图像",0);
cvShowImage( "运动模糊且加高斯噪声的图像", src0 ); 
int w=dst->width;
int h=dst->height;
CvMat * kernel=cvCreateMat(src0->height ,src0->width ,CV_32FC1);
for ( i = 0; i < h; i++)
  {
  for ( j = 0; j < w; j++)
  {
if(i<15&&j==w-1)
{
cvSet2D(kernel,i,j,cvScalar(0.0667));
}
else
cvSet2D(kernel,i,j,cvScalar(0.0));

  }
  }
double t,M;
double scale;
double shift;
cvMinMaxLoc(src0,&t,&M,NULL,NULL);
scale = 1.0/(M - t);
shift = -t * scale;
cvConvertScale(src0,imageDst,scale,shift);
cvFilter2D(imageDst,Dest,kernel,cvPoint(-1,-1));
cvCopy(imageDst,DEST);
CvMat *kernel1=cvCreateMat(src0->height ,src0->width ,CV_32FC1);
for ( i = 0; i < h; i++)
  {
  for ( j = 0; j < w; j++)
  {
if(i<15&&j==0)
{
cvSet2D(kernel1,i,j,cvRealScalar(0.0667));
}
else
cvSet2D(kernel1,i,j,cvRealScalar(0.0));

  }
  }
for(int i=0;i<20;i++)
{
cvFilter2D(DEST,DEST,kernel1,cvPoint(-1,-1));
cvDiv(Dest,DEST,DEst);
cvMul(DEST,DEST,DEst);
}
double t1,M1;
double scale1;
double shift1;
cvMinMaxLoc(DEST,&t1,&M1,NULL,NULL);
scale1 = 255/(M1 - t1);
shift1 = -t1 * scale1;
cvScale(DEST,dst,scale1,shift1);
cvNamedWindow("L-R滤波后的图像",0);
cvShowImage("L-R滤波后的图像",dst);
cvSaveImage("d:\\lena5.jpg",dst);
cvWaitKey(0); cvReleaseImage(&src);
cvReleaseImage(&dst);
cvReleaseImage(&imageDst);
cvReleaseImage(&Dest);
cvReleaseImage(&DEst);
cvReleaseImage(&DEST);
cvDestroyWindow("原始图像");
cvDestroyWindow("运动模糊且加高斯噪声的图像");
cvDestroyWindow("L-R滤波后的图像");

}
这是我自己写的L-R算法,为什么最终出来的图像为黑色啊,大神帮帮忙啊L-R算法  图片黑色