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

How to restore 2d object from 3d world

This is a blue board which means that it's for everybody (Safe For Work content only). If you see any adult content, please report it.

Thread replies: 7
Thread images: 3

File: 0CDa4.png (9KB, 593x397px) Image search: [Google]
0CDa4.png
9KB, 593x397px
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
>>
File: projective transform.jpg (46KB, 643x218px) Image search: [Google]
projective transform.jpg
46KB, 643x218px
>>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*
>>
File: perspectivetransformations.jpg (413KB, 1280x926px) Image search: [Google]
perspectivetransformations.jpg
413KB, 1280x926px
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 posts: 7
Thread images: 3


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

I'm aware that Imgur.com will stop allowing adult images since 15th of May. I'm taking actions to backup as much data as possible.
Read more on this topic here - https://archived.moe/talk/thread/1694/


If you need a post removed click on it's [Report] button and follow the instruction.
DMCA Content Takedown via dmca.com
All images are hosted on imgur.com.
If you like this website please support us by donating with Bitcoins at 16mKtbZiwW52BLkibtCr8jUg2KVUMTxVQ5
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 content originated from that site.
This means that RandomArchive shows their content, archived.
If you need information for a Poster - contact them.