मैं कैमरे अंशांकन के बाद बिंदुओं के सेट को कम करने के लिए ओपनसीवी का उपयोग करता हूं। कोड निम्नानुसार है।कैमरा शॉट निर्देशांक में अंक को कम करने और संबंधित अनियंत्रित छवि निर्देशांक प्राप्त करने के लिए कैसे?
-8.82689655e-001 -7.05507338e-001 4.16228324e-001 3.04863811e-001
जो src
में संख्या के साथ तुलना में बहुत छोटे हैं:
const int npoints = 2; // number of point specified
// Points initialization.
// Only 2 ponts in this example, in real code they are read from file.
float input_points[npoints][2] = {{0,0}, {2560, 1920}};
CvMat * src = cvCreateMat(1, npoints, CV_32FC2);
CvMat * dst = cvCreateMat(1, npoints, CV_32FC2);
// fill src matrix
float * src_ptr = (float*)src->data.ptr;
for (int pi = 0; pi < npoints; ++pi) {
for (int ci = 0; ci < 2; ++ci) {
*(src_ptr + pi * 2 + ci) = input_points[pi][ci];
}
}
cvUndistortPoints(src, dst, &camera1, &distCoeffs1);
बाद dst
ऊपर कोड निम्नलिखित संख्या में शामिल है।
एक ही समय अगर मैं कॉल के माध्यम से छवि undistort में:
cvUndistort2(srcImage, dstImage, &camera1, &dist_coeffs1);
मैं अच्छा undistorted छवि जिसका अर्थ है कि पिक्सेल निर्देशांक अलग अंक की तुलना में तो काफी संशोधित नहीं कर रहे हैं प्राप्त करते हैं।
छवियों के लिए विशिष्ट बिंदुओं के लिए समान उन्मूलन कैसे प्राप्त करें? धन्यवाद। एक स्तंभ या दो चैनलों के साथ एक पंक्ति मैट्रिक्स -
क्या आप वाकई कैमरा 1 और कैमरा समान हैं? – Sam
हां, वही - मैंने प्रश्न तय कर लिया है। इंगित करने के लिए धन्यवाद। इसके अलावा शुरुआत में मुझे इमगुसीवी में ऐसा व्यवहार प्राप्त हुआ और फिर यह पता लगाने की कोशिश की कि इस तरह के व्यवहार को पेश किया गया है: ओपनसीवी या इमगुसीवी में ही। यह ओपनसीवी में दिखाई दिया। – sergtk