using namespace cv;
using namespace std;
-void warpPerspectiveRand( const Mat& src, Mat& dst, Mat& H, RNG* rng )
+void warpPerspectiveRand( const Mat& src, Mat& dst, Mat& H, RNG& rng )
{
H.create(3, 3, CV_32FC1);
- H.at<float>(0,0) = rng->uniform( 0.8f, 1.2f);
- H.at<float>(0,1) = rng->uniform(-0.1f, 0.1f);
- H.at<float>(0,2) = rng->uniform(-0.1f, 0.1f)*src.cols;
- H.at<float>(1,0) = rng->uniform(-0.1f, 0.1f);
- H.at<float>(1,1) = rng->uniform( 0.8f, 1.2f);
- H.at<float>(1,2) = rng->uniform(-0.1f, 0.1f)*src.rows;
- H.at<float>(2,0) = rng->uniform( -1e-4f, 1e-4f);
- H.at<float>(2,1) = rng->uniform( -1e-4f, 1e-4f);
- H.at<float>(2,2) = rng->uniform( 0.8f, 1.2f);
+ H.at<float>(0,0) = rng.uniform( 0.8f, 1.2f);
+ H.at<float>(0,1) = rng.uniform(-0.1f, 0.1f);
+ H.at<float>(0,2) = rng.uniform(-0.1f, 0.1f)*src.cols;
+ H.at<float>(1,0) = rng.uniform(-0.1f, 0.1f);
+ H.at<float>(1,1) = rng.uniform( 0.8f, 1.2f);
+ H.at<float>(1,2) = rng.uniform(-0.1f, 0.1f)*src.rows;
+ H.at<float>(2,0) = rng.uniform( -1e-4f, 1e-4f);
+ H.at<float>(2,1) = rng.uniform( -1e-4f, 1e-4f);
+ H.at<float>(2,2) = rng.uniform( 0.8f, 1.2f);
warpPerspective( src, dst, H, src.size() );
}
const vector<KeyPoint>& keypoints1, const Mat& descriptors1,
Ptr<FeatureDetector>& detector, Ptr<DescriptorExtractor>& descriptorExtractor,
Ptr<DescriptorMatcher>& descriptorMatcher,
- double ransacReprojThreshold = -1, RNG* rng = 0 )
+ double ransacReprojThreshold, RNG& rng )
{
assert( !img1.empty() );
Mat H12;
if( isWarpPerspective )
- {
- assert( rng );
- warpPerspectiveRand(img1, img2, H12, rng);
- }
+ warpPerspectiveRand(img1, img2, H12, rng );
else
assert( !img2.empty()/* && img2.cols==img1.cols && img2.rows==img1.rows*/ );
RNG rng;
doIteration( img1, img2, isWarpPerspective, keypoints1, descriptors1,
detector, descriptorExtractor, descriptorMatcher,
- ransacReprojThreshold, &rng );
+ ransacReprojThreshold, rng );
for(;;)
{
char c = (char)cvWaitKey(0);
{
doIteration( img1, img2, isWarpPerspective, keypoints1, descriptors1,
detector, descriptorExtractor, descriptorMatcher,
- ransacReprojThreshold, &rng );
+ ransacReprojThreshold, rng );
}
}
waitKey(0);