如何在图像之间平滑过渡的文件夹中创建图像的幻灯片放映
using cv2.addWeighted ?
答案 0 :(得分:1)
您可以执行以下操作:
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
int main() {
auto img1 = cv::imread("img1.jpg");
auto img2 = cv::imread("img2.jpg");
// Make sure the images are the same size
img1 = img1(cv::Rect(0, 0, 700, 700));
img2 = img2(cv::Rect(0, 0, 700, 700));
cv::namedWindow("Slideshow");
for (double alpha = 0; alpha < 1; alpha += 0.05) {
cv::Mat out;
cv::addWeighted(img1, alpha, img2, 1-alpha, 0, out, -1);
imshow("Slideshow", out);
cv::waitKey(100);
}
cv::waitKey();
return 0;
}
请注意,这只是关于如何使用cv::addWeighted
的示例。它不应该像这样在实践中使用。
您可以通过在for循环和alpha
参数中使用cv::waitKey
的增量来调整转换速度。