vs2010 mfc 工具欄中沒有picturebox怎麼添加,本人編寫opencv程序時需要講圖片顯示在對話框中,網上很多是用picturebox做的,但我的vs2010沒有picturebox
OpenCV中得圖可以顯示在picture control上,只不過需要把mat對象轉成CImage一下,很簡單
void MatToCImage( Mat &mat, CImage &cImage)
{
//create new CImage
int width = mat.cols;
int height = mat.rows;
int channels = mat.channels();
cImage.Destroy(); //clear
cImage.Create(width, height,8*channels ); //默認圖像像素單通道占用1個字節
//copy values
uchar* ps;
uchar* pimg = (uchar*)cImage.GetBits(); //A pointer to the bitmap buffer
int step = cImage.GetPitch();
for (int i = 0; i < height; ++i)
{
ps = (mat.ptr<uchar>(i));
for ( int j = 0; j < width; ++j )
{
if ( channels == 1 ) //gray
{
*(pimg + i*step + j) = ps[j];
}
else if ( channels == 3 ) //color
{
for (int k = 0 ; k < 3; ++k )
{
*(pimg + i*step + j*3 + k ) = ps[j*3 + k];
}
}
}
}
}