4,246
社区成员
发帖
与我相关
我的任务
分享
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/photo/photo.hpp"
#include <iostream>
#include<ctime>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
//读取图像和mask图像
char* filename = argc >= 2 ? argv[1] : (char*)"E:\\vs_code\\cqupt.jpg";
Mat img0 = imread(filename,1);
if (img0.empty())
{
cout << "Couldn't open the image " << filename << ". Usage: inpaint <image_name>\n" << endl;
return 0;
}
img = img0.clone();
imshow("原图", img);
Mat inpaintMask = imread("E:\\vs_code\\mask.jpg", 0);
imshow("mask图", inpaintMask);
Mat inpainted;
//注意这个inpaintmask的
clock_t start, finish;
start = clock();
inpaint(img, inpaintMask, inpainted, 3, CV_INPAINT_TELEA);
finish = clock();
cout << "修复耗时:" << (double)(finish - start) / CLOCKS_PER_SEC << endl;
imshow("修复后的图", inpainted);
cout << "通道数:" << inpainted.channels() << endl;//输出3
cout << "类型:" << inpainted.type() << endl;//输出16
inpainted.convertTo(inpainted, CV_8UC3);
//保存到本地
imwrite("E:/result.png", inpainted);
cv::waitKey();
return 0;
}