這裏我試圖去除眩光。inpaint()不會產生預期結果。爲什麼?
我用下面的代碼行使用inpaint()
:
inpaint(image, vthresh, out, 5.0, CV_INPAINT_NS); //CV_INPAINT_TELEA , CV_INPAINT_NS
但我不明白爲什麼我不能讓使用inpaint()
任何影響的結果。 任何人都可以請指出原因?謝謝!
這裏我試圖去除眩光。inpaint()不會產生預期結果。爲什麼?
我用下面的代碼行使用inpaint()
:
inpaint(image, vthresh, out, 5.0, CV_INPAINT_NS); //CV_INPAINT_TELEA , CV_INPAINT_NS
但我不明白爲什麼我不能讓使用inpaint()
任何影響的結果。 任何人都可以請指出原因?謝謝!
在這裏你去:
#include "opencv2/highgui.hpp"
#include "opencv2/photo.hpp"
#include <iostream>
using namespace cv;
using namespace std;
int main(int args, char** argv)
{
//Read the image
Mat img = imread("/Desktop/apple.png", -1);
//create inpaint mask the size of original image
Mat inpaintMask = img.clone();
//convert mask from rgb to gray
cv::cvtColor(inpaintMask, inpaintMask, cv::COLOR_RGB2GRAY);
// convert mask from gray to binary by thresholding, you can play with 170 and 255 args to achieve desired mask
cv::threshold(inpaintMask, inpaintMask, 170, 255, cv::THRESH_BINARY);
Mat inpainted;
//finally call inpaint function and pass the args
inpaint(img, inpaintMask, inpainted, 3, INPAINT_TELEA);
imshow("image", img);
imshow("mask", inpaintMask);
imshow("inpainted image", inpainted);
cv::waitKey(0);
}
編輯:添加標題和主要功能,使之成爲獨立的文件
請嘗試:'CV :: bitwise_not(VTHRESH,VTHRESH);'前打電話給'inpaint'。 –
cv :: bitwise_not(vthresh,vthresh); 這只是反轉圖像。 – Abc
是的,它確定它會反轉你的面具,我只是在想,也許你的面具是錯的。 –