java rgb to yuv420_RGB to YUV420转换

说明:下面的代码用C\C++执行都可以,用C的时候请把#include 删除。 RGB to YUV420 原代码:RGB2YUV.CPP文件#include #include #include #include//转换矩阵#define MY(a,b,c) (( a* 0.2989 + b* 0.5866 + c* 0.1145))#define MU(a,b,c) (( a*(...
摘要由CSDN通过智能技术生成

说明:下面的代码用C\C++执行都可以,用C的时候请把#include 删除。 RGB to YUV420 原代码:  RGB2YUV.CPP文件

#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()

{

int i="1";

char file[255];

FILE *fp;

FILE *fp2;

unsigned char *YUV = NULL;

unsigned char *RGB = NULL;

unsigned int imgSize = WIDTH*HEIGHT;

if((fp2 = fopen("test.cif", "wb")) == NULL)//生成文件名

{

return 0;

}

RGB = (unsigned char*)malloc(imgSize*6);

YUV = (unsigned char*)malloc(imgSize + (imgSize>>1));

for(i=1; i<2; i++)

{

sprintf(file, "test.bmp", i);//读取文件

if((fp = fopen(file, "rb")) == NULL)

continue;

printf("打开文件%s\n", file);

ReadBm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值