• 大小: 11.97MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-06-20
  • 语言: C/C++
  • 标签: patchm  

资源简介

图像修复在图像处理领域一直都是备受关注的问题,通过对一副缺损图像进行修复从而使其无限的接近或达到原始图像的像素信息或视觉效果,该技术在社会生活的各领域有着重要作用。Criminisi算法是一个修复大区域破损图像的典型方法,其重要的思想以及简单的设计,是近几年来中外学者依据和改进的重要凭证,虽然该方法实现了大区域破损图像修复的突破,但是该方法对于大区域直线结构和纹理并存的破损图像修复效果较差。本文分析了几种具有代表性的数字图像修补方法,对比了每种方法的优缺点,主要对基于纹理合成结构的PatchMatch算法做了相应的研究。

资源截图

代码片段和文件信息

// cvrepair.cpp : 定义控制台应用程序的入口点。
//

#include “stdafx.h“
#include “defineall.h“
#include
#include“opencv2/core/core.hpp“
#include “mouse_mask.h“
// Disable to measure the PSNR or the SSIM measure 

#define MESURES 0

double* G_globalSimilarity = NULL;
int G_initSim = 0;


void lasi(Mat src);
///////////////////////////////////////////////////////////////////
//拉普拉斯增强
void lasi(Mat src)
{
cv::Mat kernela(3 3 CV_32F cv::Scalar(0));
Mat result;
// assigns kernel values 

kernela.at(1 1) = 5.0;
kernela.at(0 1) = -1.0;
kernela.at(2 1) = -1.0;
kernela.at(1 0) = -1.0;
kernela.at(1 2) = -1.0; 

filter2D(src result src.depth() kernela);
imshow(“darknight_log.jpg“ result);
waitKey();

}

double max1(double a double b)
{
return (a + b + fabs(a-b) ) / 2;
}

double min1(double a double b)
{
return (a + b - fabs(a-b) ) / 2;
}


int _tmain(int argc _TCHAR* argv[])
{
readimg();
printf(“------------------------------------------------------------------ \n“);
printf(“                  Inpainting based PatchMatch                      \n“);
printf(“ ------------------------------------------------------------------\n“);

clock_t tictoc;
float cpu_time;     /* Total CPU time in minutes */ 


uchar* data;
CvSize size;
double heightwidth;

//Put your file name here
//char fileNameInput[150] = “E:\\opencv\\cvrepair\\cvrepair\\image_files\\forest\\forest.bmp“;
//char fileNameMasked[150] = “E:\\opencv\\cvrepair\\cvrepair\\image_files\\forest\\forest_pruned.bmp“;

char fileNameInput[150] = “E:\\SZ\\Image\\img_src.jpg“;
//Mat img=imread(fileNameInput);
char fileNameMasked[150] = “E:\\SZ\\Image\\img_mask.jpg“;

char fileNameOutput[150];
char fileNameOutputMasked[150];
strcpy(fileNameOutput fileNameInput);
strcpy(fileNameOutputMasked fileNameMasked);
strcat(fileNameOutput “_RESULT.png“);
strcat(fileNameOutputMasked “res.png“);

IplImage* input_img=NULL  *maskimage=NULL*distorted=NULL  *output_img=NULL
*inpaint_mask_gray=NULL*input_gray=NULL *distorted_gray=NULL;

input_img=cvLoadImage(fileNameInput 1);

    if (!input_img) {
printf(“Could not load image file: %s\n“fileNameInput); 
exit(1);
}

size = cvGetSize(input_img);
height=size.height;
width=size.width;

distorted=cvLoadImage(fileNameMasked 1);

    if (!distorted) {
        printf(“Could not load image file: %s\n“fileNameMasked);
        exit(1);
}

//Mask computation  
maskimage=cvCreateImage(size81);
cvZero(maskimage);

input_gray=cvCreateImage(size81);
cvZero(input_gray);

distorted_gray=cvCreateImage(size81);
cvZero(distorted_gray);

cvCvtColor(distortedmaskimageCV_BGR2GRAY);

    for ( int i=0 ; i < height ; ++i )
for ( int j=0 ; j            if (cvGet2D(maskimageij).val[0] !=255 )
cvSet2D(maskimageijcvScalar(000));
/*
//display im

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-01-08 09:37  cvrepair\
     目录           0  2019-01-07 14:47  cvrepair\Debug\
     文件      103936  2019-01-08 09:34  cvrepair\Debug\cvrepair.exe
     文件      925808  2019-01-08 09:34  cvrepair\Debug\cvrepair.ilk
     文件     1846272  2019-01-08 09:34  cvrepair\Debug\cvrepair.pdb
     目录           0  2019-01-05 20:56  cvrepair\cvrepair\
     目录           0  2019-01-08 09:34  cvrepair\cvrepair\Debug\
     文件      108360  2019-01-08 09:34  cvrepair\cvrepair\Debug\CL.read.1.tlog
     文件        3890  2019-01-08 09:34  cvrepair\cvrepair\Debug\CL.write.1.tlog
     文件        5534  2019-01-08 09:34  cvrepair\cvrepair\Debug\cl.command.1.tlog
     文件         406  2019-01-05 17:46  cvrepair\cvrepair\Debug\cvrepair.exe.embed.manifest
     文件         472  2019-01-05 17:46  cvrepair\cvrepair\Debug\cvrepair.exe.embed.manifest.res
     文件         381  2019-01-08 09:34  cvrepair\cvrepair\Debug\cvrepair.exe.intermediate.manifest
     文件          46  2019-01-08 09:34  cvrepair\cvrepair\Debug\cvrepair.lastbuildstate
     文件        4937  2019-01-08 09:34  cvrepair\cvrepair\Debug\cvrepair.log
     文件      231457  2019-01-08 09:34  cvrepair\cvrepair\Debug\cvrepair.obj
     文件     7929856  2019-01-06 09:07  cvrepair\cvrepair\Debug\cvrepair.pch
     文件         713  2019-01-05 17:37  cvrepair\cvrepair\Debug\cvrepair.vcxprojResolveAssemblyReference.cache
     文件           0  2019-01-05 17:37  cvrepair\cvrepair\Debug\cvrepair.write.1.tlog
     文件         206  2019-01-05 17:42  cvrepair\cvrepair\Debug\cvrepair_manifest.rc
     文件      105928  2019-01-06 09:07  cvrepair\cvrepair\Debug\inpaint.obj
     文件           2  2019-01-08 09:34  cvrepair\cvrepair\Debug\link-cvtres.read.1.tlog
     文件           2  2019-01-08 09:34  cvrepair\cvrepair\Debug\link-cvtres.write.1.tlog
     文件           2  2019-01-08 09:34  cvrepair\cvrepair\Debug\link.10208-cvtres.read.1.tlog
     文件           2  2019-01-08 09:34  cvrepair\cvrepair\Debug\link.10208-cvtres.write.1.tlog
     文件           2  2019-01-08 09:34  cvrepair\cvrepair\Debug\link.10208.read.1.tlog
     文件           2  2019-01-08 09:34  cvrepair\cvrepair\Debug\link.10208.write.1.tlog
     文件           2  2019-01-08 09:34  cvrepair\cvrepair\Debug\link.10328-cvtres.read.1.tlog
     文件           2  2019-01-08 09:34  cvrepair\cvrepair\Debug\link.10328-cvtres.write.1.tlog
     文件           2  2019-01-08 09:34  cvrepair\cvrepair\Debug\link.10328.read.1.tlog
     文件           2  2019-01-08 09:34  cvrepair\cvrepair\Debug\link.10328.write.1.tlog
............此处省略155个文件信息

评论

共有 条评论

相关资源