[英]opencv - c++: how i use fastNlMeansDenoisingColoredMulti()
I have a video (130 frames). 我有一个视频(130帧)。 when I run my code my result is a line instead of an image so I guess I do not use fastNlMeansDenoisingColoredMulti function correctly. 当我运行代码时,我的结果是一行而不是图像,所以我想我没有正确使用fastNlMeansDenoisingColoredMulti函数。 What should I do? 我该怎么办?
int main(int argc, char** argv){
VideoCapture video("F:\\tarashi\\datasets\\video\\1.mp4");
if (!video.isOpened())
{
cout << "Error opening video stream or file" << endl;
return -1;
}
namedWindow("test video", 1);
int i = 0;
Mat image[130];
for (;i<130;i=i+1)
{
Mat frame;
video >> frame; // get a new frame from camera
image[i] = frame;
imshow("test video", frame);
if (waitKey(30) >= 0) break;
}
//Video opened and the image sequence is created.
Mat result;
fastNlMeansDenoisingColoredMulti(image[129],result,65,129,3,3,7,21);
imshow("denoised Image", result);
waitKey();
return 0;
}
Example: This is a screenshot of the video: 示例:这是视频的屏幕截图: So expecting a full picture to output. 因此,希望输出完整图片。 but My output(result) is : 但我的输出(结果)是:
fastNlMeansDenoisingColoredMulti( InputArrayOfArrays srcImgs, OutputArray dst, int imgToDenoiseIndex, int temporalWindowSize, float h = 3, float hColor = 3, int templateWindowSize = 7, int searchWindowSize = 21); fastNlMeansDenoisingColoredMulti(InputArrayOfArrays srcImgs,OutputArray dst,int imgToDenoiseIndex,inttemporalWindowSize,float h = 3,float hColor = 3,int templateWindowSize = 7,int searchWindowSize = 21);
InputArrayOfArrays srcImgs - array of images, but you put only one frame. InputArrayOfArrays srcImgs-图片数组,但只放置了一帧。 Try this: 尝试这个:
std::vector<cv::Mat> images;
...
images.push_back(frame);
...
fastNlMeansDenoisingColoredMulti(images, ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.