-
-
Notifications
You must be signed in to change notification settings - Fork 145
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Seeking instructions for usage. opencv perspective_transform function #530
Comments
Hello, The 2 first parameters are For the mask, I use a default let mut src_points: Vector<Point2f> = Vector::new();
let mut dst_points: Vector<Point2f> = Vector::new();
// populate the vectors of points here, usually from the keyPoints.
let mut mask = Mat::default();
trace!("Ransac threshold {}", self.model.ransac_threshold);
let m = find_homography(
&dst_points,
&src_points,
&mut mask,
RANSAC,
self.model.ransac_threshold,
)?; Note: I've inverted |
Do you know how to use perspective_transform of this library? |
Actually I never used I use let mut result = Mat::default();
warp_perspective(
&mat,
&mut result,
&m,
Size::new(self.model.model_width, self.model.model_height),
INTER_LANCZOS4,
BORDER_CONSTANT,
Scalar::from(255.0),
)?; Where |
@qq351469076 In you original message there seem to be a confusion between If you look at the docs for Also notice that the Python code calls It would be helpful if you could provide the working code in Python then it would be easier to help you translate it to Rust. |
This is a Python video course about OpenCV.
![image](https://private-user-images.githubusercontent.com/28567138/292767492-2c1b6ba0-124c-40fa-bbb6-44df7dbb9c4e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk4NDcyMjgsIm5iZiI6MTcxOTg0NjkyOCwicGF0aCI6Ii8yODU2NzEzOC8yOTI3Njc0OTItMmMxYjZiYTAtMTI0Yy00MGZhLWJiYjYtNDRkZjdkYmI5YzRlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAxVDE1MTUyOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTE3NDhjODNkOTBhNmQwNmM1NDc4OGZmMGUyMmU5MWNiNzk0MjQyZDkxZDhmOGM0MzE5MzUwNTYwOGMyMDM3NTcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0._ho-Pk0UIT7Iyp-5uxlpEQBcfKN6usoV90DxtmBEgL0)
When I understand its usage
![image](https://private-user-images.githubusercontent.com/28567138/292767373-562ca7e4-a41a-4614-a288-e15daecdd78e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk4NDcyMjgsIm5iZiI6MTcxOTg0NjkyOCwicGF0aCI6Ii8yODU2NzEzOC8yOTI3NjczNzMtNTYyY2E3ZTQtYTQxYS00NjE0LWEyODgtZTE1ZGFlY2RkNzhlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAxVDE1MTUyOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWUzZDY2MDg0Y2IwYjY4YjE3YWJkYWZhZTg5Yjk0MWIwYWY2ZTdkNzVlODlhYTI0Y2M1NWI1Y2E3YmVmODAyMTgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.lUX9ylWsxUG66dggogZUFBBze9tikg987xNIailSgz0)
and i ask for chatgpt3.5, it tell me
![image](https://private-user-images.githubusercontent.com/28567138/292767696-c2e84719-f9fd-43e1-b6ea-b4195cbddb5f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk4NDcyMjgsIm5iZiI6MTcxOTg0NjkyOCwicGF0aCI6Ii8yODU2NzEzOC8yOTI3Njc2OTYtYzJlODQ3MTktZjlmZC00M2UxLWI2ZWEtYjQxOTVjYmRkYjVmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAxVDE1MTUyOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTI4NDQ4ZGQxOTgzYWQ0OTk5MjU4ZjdhN2QzNDk5OWNlNTc1YmUyYjc4NzY0MzAzMjJjNzlhZWQ5MDNlOGJkNjkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.AUlsivDv8kADW__6yvnpqrFrxJl2wJHJNI3sizHDJQw)
I also try to imitate the first parameter
![image](https://private-user-images.githubusercontent.com/28567138/292768264-6152dd75-d4dc-45b3-8d04-b137764a256a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk4NDcyMjgsIm5iZiI6MTcxOTg0NjkyOCwicGF0aCI6Ii8yODU2NzEzOC8yOTI3NjgyNjQtNjE1MmRkNzUtZDRkYy00NWIzLThkMDQtYjEzNzc2NGEyNTZhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAxVDE1MTUyOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWM2ZWYyYzk4M2EzOWFlNzZjMWRjMmEzM2ZlMTViMWJlMWU4ZGY4MmVmMjVmN2M4M2Q1N2E5M2NlYzIzNWFkODYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.uHKHz73lu19BuU33ppp4DUCmHJa_ZqhiTehVTxEnxh0)
it raise a error
![image](https://private-user-images.githubusercontent.com/28567138/292768460-8d414d43-d3c6-433a-ae2d-3e9b4d486417.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk4NDcyMjgsIm5iZiI6MTcxOTg0NjkyOCwicGF0aCI6Ii8yODU2NzEzOC8yOTI3Njg0NjAtOGQ0MTRkNDMtZDNjNi00MzNhLWFlMmQtM2U5YjRkNDg2NDE3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAxVDE1MTUyOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQ2NzlkNDFlMDMwNjNiN2FjODk3M2Q1NzdkMGE2NTExMzJjMmIzYmM1ZTVlMWZkYWNhNmRiNmE5NzgwY2I3M2YmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.gG0sYXAntizhpLxiC3j5u2jMxHJyJbN3vNiC3gVv64Y)
my question is
my code and test picture
Locate image A in image B, and then draw lines around image A in image B.
The effect chart is as follows
![image](https://private-user-images.githubusercontent.com/28567138/292769487-b6d82c06-2a72-4154-951b-e8f1f13298f6.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk4NDcyMjgsIm5iZiI6MTcxOTg0NjkyOCwicGF0aCI6Ii8yODU2NzEzOC8yOTI3Njk0ODctYjZkODJjMDYtMmE3Mi00MTU0LTk1MWItZThmMWYxMzI5OGY2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAxVDE1MTUyOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWIwNzk3YjYwYzg5ZTgwYzRlZTdlNjQwZWJlNTQwNDc4NDI4ZTg4ZDZhYjQyNWIyZDNmN2MwNGQwMTM0NmM4ZWMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.wJTFPAXO9Rc0WpEx1sZcr_XSRNqglL4M0mKxMy2Bc3g)
opencv_orig.png
![opencv_orig](https://private-user-images.githubusercontent.com/28567138/292769326-a1c4d821-e086-4dcc-ba42-1861e625b4b2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk4NDcyMjgsIm5iZiI6MTcxOTg0NjkyOCwicGF0aCI6Ii8yODU2NzEzOC8yOTI3NjkzMjYtYTFjNGQ4MjEtZTA4Ni00ZGNjLWJhNDItMTg2MWU2MjViNGIyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAxVDE1MTUyOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQ1ZGE1YjAwOWFjNjZmMmE4NWFkMDlkMTllMDA2NjA5N2ZlODVlMTc2YWFjY2IyNzNiNzY4MDM4MTIxM2E5YjkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.ze0iJ4VSoo3_gyEffz7QWSPB-iYA51FcNxky7OGpTwE)
opencv_search.png
![opencv_search](https://private-user-images.githubusercontent.com/28567138/292769354-4f4a053f-ad2d-449f-bc5f-8ce83187e95e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk4NDcyMjgsIm5iZiI6MTcxOTg0NjkyOCwicGF0aCI6Ii8yODU2NzEzOC8yOTI3NjkzNTQtNGY0YTA1M2YtYWQyZC00NDlmLWJjNWYtOGNlODMxODdlOTVlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAxVDE1MTUyOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWIyZDE2NjU0OTZiYzVkNmZjMDJkMDQxZWNmZGY4Y2JhNWNjMmRhY2I4ZTJjYWI5ZjM1NTI1ZDhmZTNjNzA5YzkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.ZYbQ5igcsVUZd7c7psJNI5JYiCT6UXML1uokE2CLR5I)
The text was updated successfully, but these errors were encountered: