91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 15KB
    文件類型: .c
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-06-06
  • 語(yǔ)言: 其他
  • 標(biāo)簽: mini2440??LCD??顯示??

資源簡(jiǎn)介

mini2440實(shí)現(xiàn)采集攝像頭數(shù)據(jù)在開(kāi)發(fā)板的LCD顯示

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?


//攝像大小
#define?IMAGE_WIDTH 320
#define?IMAGE_HEIGHT?240
//#define?IMAGE_WIDTH 160
//#define?IMAGE_HEIGHT?120
//就只能這一兩種分辨率,其它的都會(huì)發(fā)生段錯(cuò)誤

//開(kāi)始顯示位置
#define?WINDOW_X 0
#define?WINDOW_Y 0

//時(shí)間調(diào)試開(kāi)關(guān)
#define?DEBUG_GTIME

//設(shè)備
#define?USB_VIDEO?“/dev/video0“
#define?FB_DEVICE?“/dev/fb0“

int?cam_fd; //攝像頭設(shè)備文件描述符
int?fb0_fd; //顯示設(shè)備文件描述符

unsigned?short?*fb0_buf; //顯存地址
unsigned?short?*rgb_buffer; //RGB存放地址

int?buf_count; //緩存數(shù)量也就是說(shuō)在緩存隊(duì)列里保持多少?gòu)堈掌?br/>unsigned?int?screen_size; //屏幕大小

//記錄Kernel分配Video?Buffer地址及大小結(jié)構(gòu)體
typedef?struct
{
void?*start;
int?length;
}BUFTYPE;

BUFTYPE?*user_buf;


/*
*************屏幕初始化函數(shù)**************************
*/
void?fb_init(void)
{
struct?fb_var_screeninfo?fbvar;
unsigned?int?bpp;
unsigned?int?i=0;

//打開(kāi)設(shè)備
fb0_fd?=?open(FB_DEVICE?O_RDWR);
if?(?fb0_fd? fprintf(stderr“Can?not?open?framebuffer?device\n“);
exit(EXIT_FAILURE);
}

//獲取屏幕信息
if?(?ioctl(fb0_fd?FBIOGET_VSCREENINFO?&fbvar)? fprintf(stderr“FBIOGET_VSCREENINFO?to?fail\n“);
close(fb0_fd);
exit(EXIT_FAILURE);
}

bpp?=?fbvar.bits_per_pixel; //色彩深度
screen_size?=?fbvar.xres?*?fbvar.yres?*?bpp?/?8; //屏幕寬度*屏幕高度*色彩深度/8
printf(“bpp:%dfbvar.xres:%dfbvar.yres:%d\n“?bpp?fbvar.xres?fbvar.yres);

//顯存映射
fb0_buf?=?mmap(0?screen_size?PROT_READ?|?PROT_WRITE?MAP_SHARED?fb0_fd?0);

//申請(qǐng)RGB內(nèi)存空間
rgb_buffer?=?(unsigned?short*)calloc(screen_size?(char)0xff); //(char)0xff?起到char類型的作用
if(?rgb_buffer?==?NULL?)?{
fprintf(stderr“Request?the?rgb_buf?memory?fail\n“);
close(fb0_fd);
exit(EXIT_FAILURE);
}

//清屏為藍(lán)色
bpp?=?fbvar.xres?*?fbvar.yres;
while(?i? fb0_buf[i++]?=?0x1f;
}


/*
*************lcd顯示函數(shù)**************************
*/
void?lcd_display()
{
unsigned?int?x=0y=0;
unsigned?int??i=0;
//unsigned?int?temp;

//temp?=?IMAGE_WIDTH?*?IMAGE_HEIGHT;

for?(y=WINDOW_Y;?y for?(x=WINDOW_X;?x fb0_buf[y*320+x]?=?rgb_buffer[i++];
}
}

//for?(i=0;?i //fb0_buf[i]?=?rgb_buffer[i];
}



/*
?*?yuv422??to?rgb24?function
?*?YUV422?也稱?YUYV格式,在內(nèi)存中存儲(chǔ)方式為?Y0?U0?Y1?V0
?*?這四個(gè)字節(jié)代表兩個(gè)像素:Y0?U0?VO?和?Y1?U0?V0
?*?
?*?R?=?Y?+?1.4075*(V-128)
?*?G?=?Y?-?0.3455*(U-128)?-?0.7169*(V-128)
?*?B?=?Y?+1.779?*(U-128)

?*?快速算法
?*?U‘?=?U?-128
?*?V‘?=?V?-?128
?*?R?=?Y?+?V‘?+?((V‘*104)?>>?8))
?*?G?=?Y?-?((U‘*89)?>>?8)?-?((V‘?*?183)?>>?8)
?*?B?=?Y?+?U‘?+?((U‘*199)?>>?8)

?*??Made?by?zhenguoyao?2011.11.18?at?UESTC?chengdu
?*??This?program?can?be?used?and?distributed?without?restrictions.
?*/?
#define?Y0 0

評(píng)論

共有 條評(píng)論

相關(guān)資源