我從下圖開始:
使用 opencv 我繞 Y 軸旋轉 45° 以獲得以下結果:


如果我再努力一點,我可以讓它不會在前景中被裁剪。
現在我的問題是:opencv 有做逆向轉換的工具嗎?我可以拍攝第二張圖片并制作第一張嗎?(不關心模糊的像素。)請提出一種方法。
uj5u.com熱心網友回復:
是的,這是可能的。45°旋轉后,下方和上方有一些區域缺失(未看到)。你只是無法取回那些零件。
通過一起使用
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
#include <fstream>
int main()
{
cv::Mat begin = cv::imread("/ur/img/dir/input.jpg");
cv::Mat output;
cv::Point2f Poly2[4] = {
cv::Point2f(31,9),
cv::Point2f(342,51),
cv::Point2f(28,571),
cv::Point2f(345,525), //points I got from looking in paint.
};
cv::Point2f Points[4] = {
cv::Point2f(0,0),
cv::Point2f(432,0),
cv::Point2f(0,576), //The picture I want to transform to.
cv::Point2f(432,576),
};
cv::Mat Matrix = cv::getPerspectiveTransform( Poly2,Points);
cv::warpPerspective(begin, output, Matrix, cv::Size(432, 576));
cv::imshow("Input", begin);
cv::imshow("Output", output);
cv::imwrite("/home/yns/Downloads/tt2.jpg",output);
cv::waitKey(0);
return 0;
}
uj5u.com熱心網友回復:
是的。
你已經制作了一個單應矩陣來制作這張圖片,對吧?
只需反轉它( H.inv()) 或傳遞WARP_INVERSE_MAP標志。
不需要所有其他東西。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/338181.html
