# result coordinate type

I have been making intersection point calculations between parametric line eqs and planes in opencv. I am using raw imaging point data for the math calculations below. What units of measurement are my results? I haven't done a opencv Rodriquez, transformation or other function on this data set yet, otherwise the question would be settled.

I've also tried "converting" to U, V coordinates but am unsure if its correct.

double numer = plane.get_numer(d, n, Ro); // origin point - p - see diagram
double denom = plane.get_denom(n, Rd);
double t = numer / denom;
Vec3d IP = plane.get_IP(Ro, Rd, t); // IP = 'intersection point'
double U = CV_FX * IP + CV_CX;
double V = CV_FY * IP + CV_CY;
std::cout << "U,V = " << U << "," << V << std::endl;

edit retag close merge delete

we cannot see, what your plane class does, and there's no explanation for CV_FX etc. but if the input was in pixels, the output will be, too.

CV_FX, CV_FY, CV_CX, CV_CY belong to K (camera intrinsics).

class Plane {
public:
Vec3d cal_vector(Point3d point1, Point3d point2) { return point2 - point1; }
Vec3d normal(Vec3d Q, Vec3d R) { return Q.cross(R); }
double cal_D(Vec3d n, Point3d raw_scene_p2) { return -(n.dot(raw_scene_p2));} // d calculated with plane points
double get_numer(double d, Vec3d n, Vec3d Ro) { return -1 * (d + n.dot(Ro)); }
double get_denom(Vec3d n, Vec3d Rd) {return n.dot(Rd); }
Vec3d get_IP(Vec3d Ro, Vec3d Rd, double t) { return Ro + t * Rd; }
// n.p + d = 0


};enter code here