OpenCV 4.12.0
开源计算机视觉
加载中...
搜索中...
无匹配项
samples/cpp/tutorial_code/imgcodecs/animations.cpp

一个示例,展示了 cv::imreadanimationcv::imwriteanimation 函数的用法。查看 相应的教程 了解更多详情

#include <iostream>
using namespace cv;
int main( int argc, const char** argv )
{
std::string filename = argc > 1 ? argv[1] : "animated_image.webp";
if (argc == 1)
{
Animation animation_to_save;
Mat image(128, 256, CV_8UC4, Scalar(150, 150, 150, 255));
int duration = 200;
for (int i = 0; i < 10; ++i) {
animation_to_save.frames.push_back(image.clone());
putText(animation_to_save.frames[i], format("Frame %d", i), Point(30, 80), FONT_HERSHEY_SIMPLEX, 1.5, Scalar(255, 100, 0, 255), 2);
animation_to_save.durations.push_back(duration);
}
imwriteanimation("animated_image.webp", animation_to_save, { IMWRITE_WEBP_QUALITY, 100 });
}
Animation animation;
bool success = imreadanimation(filename, animation);
if (!success) {
std::cerr << "Failed to load animation frames\n";
return -1;
}
while (true)
for (size_t i = 0; i < animation.frames.size(); ++i) {
imshow("Animation", animation.frames[i]);
int key_code = waitKey(animation.durations[i]); // 帧之间的延迟
if (key_code == 27)
exit(0);
}
return 0;
}
n 维密集数组类
定义 mat.hpp:830
CV_NODISCARD_STD Mat clone() const
创建数组及其底层数据的完整副本。
#define CV_8UC4
定义 interface.h:91
int main(int argc, char *argv[])
定义 highgui_qt.cpp:3
定义 core.hpp:107
表示具有多个帧的动画。 Animation 结构旨在存储和管理 da...
定义 imgcodecs.hpp:270
CV_PROP_RW std::vector< Mat > frames
帧的向量,其中每个 Mat 表示一个单独的帧。
定义 imgcodecs.hpp:288
CV_PROP_RW std::vector< int > durations
每帧的持续时间(以毫秒为单位)。
定义 imgcodecs.hpp:286