【发布时间】:2013-11-28 12:56:07
【问题描述】:
有没有办法用 OpenCV 进行反卷积?
这里显示的改进给我留下了深刻的印象
并且想将此功能也添加到我的软件中。
编辑(赏金的其他信息。)
我还没有弄清楚如何实现反卷积。 这段代码可以帮助我锐化图像,但我认为反卷积可以做得更好。
void ImageProcessing::sharpen(QImage & img)
{
IplImage* cvimg = createGreyFromQImage( img );
if ( !cvimg ) return;
IplImage* gsimg = cvCloneImage(cvimg );
IplImage* dimg = cvCreateImage( cvGetSize(cvimg), IPL_DEPTH_8U, 1 );
IplImage* outgreen = cvCreateImage( cvGetSize(cvimg), IPL_DEPTH_8U, 3 );
IplImage* zeroChan = cvCreateImage( cvGetSize(cvimg), IPL_DEPTH_8U, 1 );
cvZero(zeroChan);
cv::Mat smat( gsimg, false );
cv::Mat dmat( dimg, false );
cv::GaussianBlur(smat, dmat, cv::Size(0, 0), 3);
cv::addWeighted(smat, 1.5, dmat, -0.5 ,0, dmat);
cvMerge( zeroChan, dimg, zeroChan, NULL, outgreen);
img = IplImage2QImage( outgreen );
cvReleaseImage( &gsimg );
cvReleaseImage( &cvimg );
cvReleaseImage( &dimg );
cvReleaseImage( &outgreen );
cvReleaseImage( &zeroChan );
}
希望得到有用的提示!
【问题讨论】:
-
要求代码的问题必须表明对所解决问题的最低理解。包括尝试的解决方案、为什么它们不起作用以及预期的结果。另请参阅:堆栈溢出问题清单
-
发现了一篇关于该主题的有趣文章:yuzhikov.com/articles/BlurredImagesRestoration1.htm
标签: c++ opencv image-processing