intosite
intosite

Reputation: 143

OpenCv Blob tracking of point relative to plane

Am doing an installation that tracks blobs using openCv, and projecting graphics over the blobs. Problem is my camera is off and away from the projector.

I'm thinking to get the point's position in relation to the projection's plane, I would need to calibrate by marking out the plane's corners as seen in the camera view.

My problem is how do i use that 4 points info, and then convert the tracked blob from the camera view to the projection plane, so the projected graphic lines up with the tracked blob? Not sure what i should be searching for.

Upvotes: 1

Views: 307

Answers (2)

George Profenza
George Profenza

Reputation: 51837

Unfortunately I'm unable to help with a minimal code example at the moment, but I recommend having a look at ofxCv and it's examples. There is a camera based undistort example, but the wrapper also provides utilities for warping/unwarping perspective via warpPerspective and unwarpPerspective.

Bare in mind ofxCv has handy function to convert to/from ofImage to cv::Mat like toCv() and toOf()

ofxCv may make it easier to use the OpenCV functions Elad Joseph recommends (which sound like exactly what you need)

Upvotes: 0

Elad Joseph
Elad Joseph

Reputation: 3068

After you detect the 4 corners points, you can calculate the transformation to the projector plane by using PerspectiveTransform.

Once you have this transformation, you could use warpPerspective, to go from one coordinate system to another.

Upvotes: 1

Related Questions