对于相机的初始化参数建立一个结构 int ChessBoardSize_w =6; //角点个数 int ChessBoardSize_h =7; int width_pixel =640; //像素 int high_pixel =512; int NImages=13; float SquareSize=10; //棋盘大小
这样对于程序的可读性有很好的帮助。 ××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××× 对于标定函数本身的封装 ////////////////////////////////////////////////////////// 输出文件的时候 void CCaneraView::PrintMat(CvMat *matrix) { int i=0; int j=0; for(i=0;i < matrix->rows;i++)//行 {
m_CalibrateResolution.Format("/n"); switch(matrix->type&0X07) { case CV_32F: case CV_64F: { for(j=0;j<matrix->cols;j++)//列 { m_CalibrateResolution.Format("%9.3f ",(float)cvGetReal2D(matrix,i,j)); } break; } case CV_8U: case CV_16U: { for(j=0;j<matrix->cols;j++) { m_CalibrateResolution.Format("%6d ",(int)cvGetReal2D(matrix,i,j)); }
m_CalibrateResolution.Format("/n"); switch(matrix->type&0X07) { case CV_32F: case CV_64F: { for(j=0;j<matrix->cols;j++)//列 { m_CalibrateResolution.Format("%9.3f ",(float)cvGetReal2D(matrix,j,i)); this->GetDC()->TextOut(point.x+i*100,point.y+j*30,m_CalibrateResolution); } break; } case CV_8U: case CV_16U: { for(j=0;j<matrix->cols;j++) { m_CalibrateResolution.Format("%6d ",(int)cvGetReal2D(matrix,i,j)); this->GetDC()->TextOut(point.x+i*100,point.y+j*30,m_CalibrateResolution); }
break; }
default: break;
} } }就可以了 ×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××× //////////////////////////////////////// 对于文本的大量显示可以把VIEW类改为滚动条视图类 CStrolView是从Cview类中继承的 ××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××× ///////////////////////////////////////// 得到字体的大小 GetTextMetrics The GetTextMetrics function fills the specified buffer with the metrics for the currently selected font. BOOL GetTextMetrics( HDC hdc, // handle to device context LPTEXTMETRIC lptm // pointer to text metrics structure );
文章评论(0条评论)
登录后参与讨论