opencv默认情况下是不支持读取Gif图片的,不过借助Cursor的ai功能,我们可以实现在opencv功能中实现对gif图片的读取
实现代码如下:
#include <iostream>
#include <opencv2/opencv.hpp>
void displayGifUsingVideoCapture() {
const std::string filename = "C:\\Users\\Administrator\\Desktop\\CursorVs2022\\emotion_d0018.gif";
cv::VideoCapture cap(filename);
if (!cap.isOpened()) {
std::cout << "无法打开GIF文件: " << filename << std::endl;
return;
}
cv::Mat frame;
cv::namedWindow("GIF Animation", cv::WINDOW_AUTOSIZE);
while (true) {
cap >> frame;
if (frame.empty()) {
cap.set(cv::CAP_PROP_POS_FRAMES, 0); // 循环播放
continue;
}
cv::imshow("GIF Animation", frame);
// 等待33ms,约30fps,如果按下ESC键则退出
if (cv::waitKey(33) == 27) {
break;
}
}
cap.release();
cv::destroyAllWindows();
}
int main() {
displayGifUsingVideoCapture();
return 0;
}