先展示代码,里面含有读取颜色值,进行lab的空间转换
void CScfxDlg::DrawIplImage2DC(IplImage *img,int ID)
{
if (img!=NULL)
{
CDC *pDC = GetDlgItem(ID)->GetDC();
HDC hDC = pDC->GetSafeHdc();
CRect rect;
GetDlgItem(ID)->GetClientRect(&rect);
CvvImage cvvimg;//在opencv的highgui.h头文件中
cvvimg.CopyOf(img);
cvvimg.DrawToHDC(hDC,&rect);
UpdateData(TRUE);
ReleaseDC(pDC);
}
}
float CScfxDlg::f(float c)
{
float t=1/3;
if(c>0.008856)
return pow(c,t);
else return (7.787*c)+(16/116);
}
void CScfxDlg::OnBnClickedOk2()
{
IplImage* img=0;
IplImage* img2=0;
img=cvLoadImage("mama.jpg", CV_LOAD_IMAGE_ANYCOLOR); //载入图片1
img2=cvLoadImage("mama2.jpg", CV_LOAD_IMAGE_ANYCOLOR);//载入图片2
IplImage* src1; //src1指向图片1从RBG转化为lab后的lab颜色模式图片
IplImage* lbaimg=cvCreateImage(cvGetSize(img),8,img->nChannel