說明:下面的**用c\c++執行都可以,用c的時候請把#include刪除。
rgb to yuv420 原**: rgb2yuv.cpp檔案
[cpp]view plain
copy
#include
#include
#include
#include
//轉換矩陣
#define my(a,b,c) (( a* 0.2989 + b* 0.5866 + c* 0.1145))
#define mu(a,b,c) (( a*(-0.1688) + b*(-0.3312) + c* 0.5000 + 128))
#define mv(a,b,c) (( a* 0.5000 + b*(-0.4184) + c*(-0.0816) + 128))
//大小判斷
#define dy(a,b,c) (my(a,b,c) > 255 ? 255 : (my(a,b,c) < 0 ? 0 : my(a,b,c)))
#define du(a,b,c) (mu(a,b,c) > 255 ? 255 : (mu(a,b,c) < 0 ? 0 : mu(a,b,c)))
#define dv(a,b,c) (mv(a,b,c) > 255 ? 255 : (mv(a,b,c) < 0 ? 0 : mv(a,b,c)))
//只處理352*288檔案
#define width 352
#define height 288
//讀bmp
void readbmp(unsigned char *rgb,file *fp);
//轉換函式
void convert(unsigned char *rgb, unsigned char *yuv);
//入口
int main()
rgb = (unsigned char*)malloc(imgsize*6);
yuv = (unsigned char*)malloc(imgsize + (imgsize>>1));
for(i=1; i<2; i++)
fclose(fp2);
if(rgb)
free(rgb);
if(yuv)
free(yuv);
printf("完成\n");
system("pause");
return 1;
} //讀bmp
void readbmp(unsigned char *rgb,file *fp)
//順序調整
for(i=0; (unsigned int)i < width*height*3; i+=3)
} void convert(unsigned char *rgb, unsigned char *yuv)
} }
yuv420 to rgb 原**: yuv2rgb.cpp檔案
[cpp]view plain
copy
#include
#include
#include
#define width 352
#define height 288
//轉換矩陣
double yuvtorgb[3][3] = ;
//根據rgb三分量寫bmp,不必關注
int writebmp(int width, int height, unsigned char *r,unsigned char *g,unsigned char *b, char *bmpfilename);
//轉換函式
int convert(char *file, int width, int height, int n)
//寫到bmp檔案中
sprintf(bmpfilename, "test.bmp", file, n);
writebmp(width, height, ctemp[3], ctemp[4], ctemp[5], bmpfilename);
free(yuv);
free(rgb);
return n;
} //入口 沒啥東西
void main()
//寫bmp 不必關注
int writebmp(int width, int height, unsigned char *r,unsigned char *g,unsigned char *b, char *bmpfilename)
} fwrite(wrgb, 1, byteperline*height+54, fp);
free(wrgb);
fclose(fp);
return 1;
}
reduce map filter 互相轉化
python有乙個有意思的事情,就是reduce map和filter,三者可以相互轉換。例如以reduce為基礎,可以實現map和filter函式如下 1 def map func,iterable 2 return reduce lambda orlst,iterable,3 4def filt...
jQuery DOM 物件互相轉化
1.jquery物件 jquery物件就是使用 domobj 將dom物件包裝起來。一般在jquery物件前面加上 這樣與dom物件區分,它已經是一種公認的命名約定。jquery物件不能呼叫dom物件的屬性和方法,同樣dom物件也不能呼叫jquery物件的屬性和方法。2.jquery物件轉成dom物...
CString與double互相轉化
1.double轉化為cstring 在mfc程式中,可以使用format方法方便的實現int float和double等數字型別轉換為cstring字串。以下是cstring的format支援的格式說明 c 單個字元 d 十進位制整數 int ld 十進位制整數 long f 十進位制浮點數 fl...