[Boards: 3 / a / aco / adv / an / asp / b / biz / c / cgl / ck / cm / co / d / diy / e / fa / fit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mu / n / news / o / out / p / po / pol / qa / qst / r / r9k / s / s4s / sci / soc / sp / t / tg / toy / trash / trv / tv / u / v / vg / vip /vp / vr / w / wg / wsg / wsr / x / y ] [Search | Home]
4Archive logo
How to restore 2d object from 3d world
If images are not shown try to refresh the page. If you like this website, please disable any AdBlock software!

You are currently reading a thread in /sci/ - Science & Math

Thread replies: 7
Thread images: 3
File: 0CDa4.png (9 KB, 593x397) Image search: [iqdb] [SauceNao] [Google]
0CDa4.png
9 KB, 593x397
Im writing an app to read qr-like codes. Each code has a couple of identification points, so app can:
1. find em in the photo
2. check how their positions are different from original structure
3. calculate rotation, translation, scale
4. restore whole code by untransforming
5. read the data lying between id points

Its all simple as long, as the photo is taken perpendicularly. When the "projection" is tilted from the vertical by a few degrees the algorithm dramatically loses efficiency.

The question is: what operation/matrix do I need to bring the 2d object back to 2d surface from 3d world?

pic related, sample perspective
>>
>>7795891
>3. calculate rotation, translation, scale

These (+ shearing) are just affine transformations. You need a projective transformation.

>5. read the data lying between id points

I hope you're using bicubic/bilinear interpolation and not nearest neighbor.
>>
Many thanks!

Think I'll get away without interpolation. I don't expect big angles and app is meant only to read binary sequences basing on areas' average brightness, so single pixels shouldn't be crucial. Still a very valueable nice!

> and not nearest neighbor.

What do you mean by that?
>>
notice*
>>
I needed to do something like that in a job. Its actually pretty easy if you know the the transformed and original points.

I used a python module:
http://scikit-image.org/docs/dev/api/skimage.transform.html#skimage.transform.ProjectiveTransform

But heres how you implement it from grounds up:
http://stackoverflow.com/questions/14177744/how-does-perspective-transformation-work-in-pil

Qt has functions to do the same
>>
>>7796108
Nearest neighbor interpolation doesn't produce a nice image.
>>
Look up image registration techniques, namely affine, non rigid, interpolation and similarly metrics
Thread replies: 7
Thread images: 3
Thread DB ID: 440167



[Boards: 3 / a / aco / adv / an / asp / b / biz / c / cgl / ck / cm / co / d / diy / e / fa / fit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mu / n / news / o / out / p / po / pol / qa / qst / r / r9k / s / s4s / sci / soc / sp / t / tg / toy / trash / trv / tv / u / v / vg / vip /vp / vr / w / wg / wsg / wsr / x / y] [Search | Home]

[Boards: 3 / a / aco / adv / an / asp / b / biz / c / cgl / ck / cm / co / d / diy / e / fa / fit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mu / n / news / o / out / p / po / pol / qa / qst / r / r9k / s / s4s / sci / soc / sp / t / tg / toy / trash / trv / tv / u / v / vg / vip /vp / vr / w / wg / wsg / wsr / x / y] [Search | Home]

All trademarks and copyrights on this page are owned by their respective parties. Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.
This is a 4chan archive - all of the shown content originated from that site. This means that 4Archive shows their content, archived. If you need information for a Poster - contact them.
If a post contains personal/copyrighted/illegal content, then use the post's [Report] link! If a post is not removed within 24h contact me at [email protected] with the post's information.