convertMaps metodu
Örnek ver
getAffineTransform metodu
Örnek ver
getPerspectiveTransform metodu
Açıklaması şöyle
Örnek ver
getAffineTransform metodu
Örnek ver
getPerspectiveTransform metodu
Açıklaması şöyle
If we were flying over the road, and watching it from a bird’s eye view, the lanes would be parallel, but in the picture, they are not, because of the perspective....OpenCV has a method to compute the perspective transformation: getPerspectiveTransform().It takes two parameters, both arrays of four points, identifying the trapezoid of the perspective. One array is the source and one array is the destination.
Şeklen şöyle. Yeşil şerit çizgilerini verince, beyaz perspective şeklini elde ederiz.
Perspective'den geriye dönüş te mümkün. Şöyle yaparız
getRectSubPix metoduperspective_correction = cv2.getPerspectiveTransform(src, dst)perspective_correction_inv = cv2.getPerspectiveTransform(dst, src)
Örnek ver
getRotationMatrix2D metodu
Örnek ver
invertAffineTransform metodu
Örnek ver
LinearPolar metodu
Örnek ver
LogPolar metodu
Örnek ver
remap metodu
Örnek ver
resize metodu
Birinci parametre girdi resim, ikinci parametre çıktı resim, üçüncü parametre çıktı resimimin büyüklüğü, dördüncü parametre x ekseninde scale, beşinci parametre y eksenindeki scale, altınca prametre interpolation yöntemidir.
Örnek
Bir resmin diğerinin boyutlarına getirmek için şöyle yaparız.
Mat bg_frame = ...;
Mat cam_frame = ...;
Mat diff_frame;
resize(cam_frame, cam_frame, bg_frame.size());
ÖrnekResmi iki kat küçültmek için şöyle yaparız.
cv::Mat image = ...;
cv::Mat small;
cv::resize(image, small, image.size()/2, 0, 0 , cv::INTER_LINEAR);
warpAffine metodu
İmzası şöylecv::warpAffine (InputArray src, // input mat
OutputArray dst, // output mat
InputArray M, // affine transformation mat
Size dsize) // size of the output mat
M matrisi şöyle a11 a12 ofx
a21 a22 ofy
ÖrnekElimizde bir resim olsun.
Mat image = ...
Bu resmi dönüştürmek için M değerlerini ilklendirmek için şöyle yaparız.Mat m;
m = Mat(2, 3, CV_64FC1); // Allocate memory
m.at<double>(0,0)= 1.01121; //p1
m.at<double>(1,0)= 0.21067 ; //p2;
m.at<double>(0,1)= -89.69693; //p3;
m.at<double>(1,1)= - 0.11557; //p4;
m.at<double>(0,2)= 1.44982; //p5;
m.at<double>(1,2)= -193.66149;//p6;
Çıktı matrisini hazırladıktan sonra şöyle yaparız.Mat imgAffine = Mat::zeros(image.rows, image.cols, image.type());
warpAffine(image,imgAffine,par, image.size(),INTER_LINEAR);
warpPerspective metoduKamreranın yerini değiştirir. Örneğin bir resmi kuş bakışı hale getirebilir
Örnek
Şöyle yaparız
cv2.warpPerspective(img, perspective_correction, warp_size, flags=cv2.INTER_LANCZOS4)
Açıklaması şöyle
The warpPerspective() method accepts four parameters:1. The source image.2. The transformation matrix, obtained from getPerspectiveTransform().3. The size of the output image. In our case, the width is the same as the original image, but the height is only the height of the trapezoid/rectangle.4. Some flags, to specify the interpolation. INTER_LINEAR is a common choice, but I recommend experimenting, and to give INTER_LANCZOS4 a try.
Örnek
Şöyle yaparız.
initUndistortRectifyMap metodu
Örnek ver
getDefaultNewCameraMatrix metodu
Örnek ver
undistort metodu
Örnek ver
undistortPoints metodu
Örnek ver
Size matSize = ...;
Mat transmtx = ...;
warpPerspective(mat, mat, transmtx, matSize);
initUndistortRectifyMap metodu
Örnek ver
getDefaultNewCameraMatrix metodu
Örnek ver
undistort metodu
Örnek ver
undistortPoints metodu
Örnek ver
Hiç yorum yok:
Yorum Gönder