{
const double max_z = 1.0e4;
try
{
FILE* fp = fopen(filename, "wt");
fprintf(fp, "%02d\n", pointClouds.rows);
fprintf(fp, "%02d\n", pointClouds.cols);
for (int y = 0; y < pointClouds.rows; y++)
{
for (int x = 0; x < pointClouds.cols; x++)
{
//cv::Vec3f point = pointClouds.at<cv::Vec3f>(y, x);
int point = pointClouds.at<unsigned char>(y, x); //float point = pointClouds.at<float>(y, x)不行,原因還沒有弄清楚
//if (fabs(point - max_z) < FLT_EPSILON || fabs(point) > max_z)
if (fabs(point - max_z) < FLT_EPSILON || point > max_z)
fprintf(fp, "%d \n", 0);
else
fprintf(fp, "%d \n", point);
}
}
fclose(fp);
}
template<typename _Tp> inline _Tp& Mat::at(int i0, int i1)
{
CV_DbgAssert( dims <= 2 && data && (unsigned)i0 < (unsigned)size.p[0] &&
(unsigned)(i1*DataType<_Tp>::channels) < (unsigned)(size.p[1]*channels()) &&
CV_ELEM_SIZE1(DataType<_Tp>::depth) == elemSize1());
return ((_Tp*)(data + step.p[0]*i0))[i1];
}
IPL_DEPTH_8U - 無符號8位整型
IPL_DEPTH_8S - 有符號8位整型
IPL_DEPTH_16U - 無符號16位整型
IPL_DEPTH_16S - 有符號16位整型
IPL_DEPTH_32S - 有符號32位整型
IPL_DEPTH_32F - 單精度浮點數
IPL_DEPTH_64F - 雙精度浮點數