C++Builder用OpenCV和TBitmap显示图片
百度到的代码:
if (dlgOpenPic->Execute()) // 使用TOpenDialog控件选择文件
{
IplImage *pImage = cvLoadImage(dlgOpenPic->FileName.c_str(),CV_LOAD_IMAGE_COLOR) ; // 使用OPENCV函数载入图片
if(pImage == NULL)
return ;
cvFlip(pImage) ;
int nWidth = pImage->width ;
int nHeight = pImage->height ;
imgShowPic->Picture->Bitmap->Width = nWidth ;
imgShowPic->Picture->Bitmap->Height = nHeight ;
imgShowPic->Picture->Bitmap->PixelFormat = pf24bit ; // 设置图片为24色显示
memcpy(imgShowPic->Picture->Bitmap->ScanLine[nHeight - 1],pImage->imageData,pImage->imageSize) ; // 将载入的图片数据写入Timage控件中。
cvReleaseImage(&pImage); // 最后要释放这个句柄。
}
这样就可以显示任何格式的图片了。
——————————
老概看看这个代码有没有问题?
cvFlip(pImage) ;
memcpy(imgShowPic->Picture->Bitmap->ScanLine[nHeight - 1],pImage->imageData,pImage->imageSize) ;
这两行代码什么原理?ScanLine[nHeight - 1]是最低地址?BMP扫描线是反向的?