{
Image1->Picture->LoadFromFile(OpenPictureDialog1->FileName);
}
Image1->AutoSize=true;
Im1H = Image1->Height;
Im1W = Image1->Width;
Image1->Picture->Bitmap->Width=Im1W;
Image1->Picture->Bitmap->Height=Im1H;
Image1->Picture->Bitmap->PixelFormat=pf24bit;
Im1R=new int *[Im1H];
Im1G=new int *[Im1H];
Im1B=new int *[Im1H];
Im1Y=new double *[Im1H];
Im1Cb=new double *[Im1H];
Im1Cr=new double *[Im1H];
Im1DCTY=new double *[Im1H];
Im1DCTCb=new double *[Im1H];
Im1DCTCr=new double *[Im1H];
Im1QuaY=new double *[Im1H];
Im1QuaCb=new double *[Im1H];
Im1QuaCr=new double *[Im1H];
for( i=0; i<Im1H ; i++ )
{
Im1R[i]=new int[Im1W];
Im1G[i]=new int[Im1W];
Im1B[i]=new int[Im1W];
Im1Y[i]=new double[Im1W];
Im1Cb[i]=new double[Im1W];
Im1Cr[i]=new double[Im1W];
Im1DCTY[i]= new double[Im1W];
Im1DCTCb[i]= new double[Im1W];
Im1DCTCr[i]= new double[Im1W];
Im1QuaY[i]=new double [Im1W];
Im1QuaCb[i]=new double [Im1W];
Im1QuaCr[i]=new double [Im1W];
}
for( i=0 ; i
ptr =(Byte *)Image1->Picture->Bitmap->ScanLine[i];
for( j=0 ; j<Im1W; j++ )
{
Im1R[i][j]=(int)ptr[j*3+2];
tempR=ptr[j*3+2];
RecordR[tempR]++;
//****************
Im1G[i][j]=(int)ptr[j*3+1];
tempG=ptr[j*3+1];
RecordG[tempG]++;
//****************
Im1B[i][j]=(int)ptr[j*3];
tempB=(int)ptr[j*3];
RecordB[tempB]++;
//=====Y,Cb,Cr分格線=====
Im1Y[i][j]=0.2990*(double)tempR+0.5870*(double)tempG+0.1140*(double)tempB;
Im1Cb[i][j]=0.1687*(double)tempR-0.3313*(double)tempG+0.5000*(double)tempB;
Im1Cr[i][j]=0.5000*(double)tempR-0.4187*(double)tempG-0.0813*(double)tempB;
}
}
沒有留言:
張貼留言