OpenCV超分辨率输出阵列帧
OpenCV SuperResolution OutputArray frame
在SuperResolution的文档中
输出下一帧所需的代码为:void superres::SuperResolution::nextFrame(OutputArray frame)
输入帧源必须设置为:void superres::SuperResolution::setInput(const Ptr<FrameSource>& frameSource)
我有一个从视频中获取帧的代码:
#include "opencv2/opencv.hpp"
#include "iostream"
using namespace cv;
using namespace std;
int main(int, char**)
{
VideoCapture cap ( "video1.mp4" ); // open the default camera
if( ! cap.isOpened () ) // check if we succeeded
return -1;
/* Mat edges; */
namedWindow ( "Video" , 1 );
double frnb ( cap.get ( CV_CAP_PROP_FRAME_COUNT ) );
std::cout << "frame count = " << frnb << endl;
for(;;)
{
Mat frame;
double fIdx;
std::cout << "frame index ? ";
std::cin >> fIdx;
if ( fIdx < 0 || fIdx >= frnb ) break;
cap.set ( CV_CAP_PROP_POS_FRAMES , fIdx );
bool success = cap.read(frame);
if ( ! success )
{
cout << "Cannot read frame " << endl;
break;
}
/* cap >> frame; // get a new frame from camera */
imshow("Video", frame);
if ( waitKey (0) == 27 ) break;
}
// the camera will be deinitialized automatically in VideoCapture destructor
return 0;
}
鉴于此,我可以使用frame
变量作为setInput
方法的参数,但我如何初始化生成输出所需的OutputArray frame
?
我认为不能使用frame
作为setInput
的参数,也不需要初始化OutputArray frame
。
看看这个例子:
FrameSource是这样创建的:
121. frameSource = createFrameSource_Video(inputVideoName);
然后使用outputArray帧,如下所示:
142. Mat result; // no intialization, just declaration
144. MEASURE_TIME(superRes->nextFrame(result));
相关文章:
- 递归函数计算序列中的平方和(并输出过程)
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 请解释"函数1(p1,p2,p3);"的输出
- C++:将控制台输出存储在宏中更好吗
- OpenMP阵列性能较差
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 为什么我的代码在输出中增加了93天
- 数组类 阵列的打印输出
- 阵列输出网格上的x和y轴
- 我的 2D 阵列无法读取文本文件并正确输出
- 动态分配的输入,并在C 中输出2D阵列
- 将非零矢量成员读取为阵列和输出点产品
- 每次循环时,输出一个具有较小字符的字符阵列
- 阵列调试不正确的输出,复杂算法
- 为什么打印字符串阵列输出十六进制
- 阵列程序奇怪的输出
- 检查阵列输出
- OpenCV超分辨率输出阵列帧
- 创建一个3x3x3阵列.用0到9之间的随机值填充.输出数组.找出3个最小值和3个最大值的输出