android4.0 USB Camera实例(四)CMOS

上一篇说了下usb camera uvc标准的 顺便把CMOS做到一起 操作上基本一至 上一篇HAL层里我已经提供了CMOS的相关接口

JNIEXPORT jint JNICALL Java_com_dao_usbcam_Fimcgzsd_yuvtorgb

如果使用和UVC一样的处理 图像显示不出来 所以用另外一种方法 同时这里使用的是斯道ICOOL210开发板测试的 如果使用CMOS还需要修改一些地方 HAL层修改如下

首先增加一个函数如下

int select_input(int input) { int ret; ret = ioctl(fd, VIDIOC_S_INPUT, &input); if (ret) { printf("xioctl VIDIOC_S_INPUT failed+++++\n"); } return ret; }

init里调用 init修改如下

JNIEXPORT jint JNICALL Java_com_dao_usbcam_Fimcgzsd_init(JNIEnv * env, jclass obj, jint width, jint height,jint numbuf,jint ctype) { int ret; int i; bufnum = numbuf; mwidth = width; mheight = height; c_type = ctype; struct v4l2_format fmt; struct v4l2_capability cap; if(c_type == 2) select_input(0); else if(c_type == 3) select_input(1); ret = ioctl(fd, VIDIOC_QUERYCAP, &cap); if (ret 0) fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUYV; else fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_RGB565; if(c_type > 1) { fmt.fmt.pix.field = V4L2_FIELD_NONE;//V4L2_FIELD_INTERLACED;//V4L2_FIELD_NONE; fmt.fmt.pix.priv = 1; } fmt.fmt.pix.width = width; fmt.fmt.pix.height = height; if (ioctl(fd, VIDIOC_S_FMT, &fmt)
修改地方不是很多 这里当c_type为2的时候是针对CMOS的接口通道1 为3的时候是通道2
同时在
void yuyv422torgb(unsigned char *src,int *mrgb)
最后需要修改下 在测试过程中发现红色和蓝色反了 所以把最后的

*lrgb++ = 0xff000000 | b1修改为

*lrgb++ = 0xff000000 | r1最后 应用里的相关修改如下

class StartThread extends Thread { @Override public void run() { // TODO Auto-generated method stub //super.run(); while(true) { index = Fimcgzsd.dqbuf(mdata); if(index 最后应用修改如下 这里主要是去实现功能 界面比较简单
android4.0 USB Camera实例(四)CMOS

android4.0 USB Camera实例(四)CMOS

分类:默认分类 时间:2012-01-17 人气:9
本文关键词:
分享到:

相关文章

  • android4.0 USB Camera实例(一)HAL层 2014-09-26

    一直想自己写一个从HAL层到应用层的Camera例子,android4.0上usb camera用不了 所以决定自己写一个 usb camera和coms原理都是一样的 基本v4l2 只不过源码数据格式不一样而已 下面我们就从HAL层开始 以下是我的代码,先上代码在 一步步说明 fimcgzsd.c /* * Android USB Camera zc3xx Library * * Copyright (c) 2014 Store information technology guangzhou

  • android4.0 USB Camera实例(六)ffmpeg mpeg编码 2012-03-29

    前面本来说是做h264编码的 研究了两天发现ffmpeg里的h264编码似乎是要信赖第三方库x264 还是怎么简单怎么来吧所以就整了个mpeg编码 ffmpeg移植前面我有一篇ffmpeg解码里已经给了 具体链接在这http://blog.csdn.net/hclydao/article/details/18546757 怎么使用那里面也已经说了 这里主要是通过ffmpeg将yuv422格式转换成rgb 然后就是yuv422转成mpeg格式 接前面几篇 获取到yuv422数据后 为了能显示出来 

  • 玩转Android Camera开发(五):基于Google自带算法实时检测人脸并绘制人脸框(网络首发,附完整demo) 2012-01-04

    本文主要介绍使用Google自带的FaceDetectionListener进行人脸检测,并将检测到的人脸用矩形框绘制出来。本文代码基于PlayCameraV1.0.0,在Camera的open和preview流程上进行了改动。原先是放在单独线程里,这次我又把它放到Surfaceview的生命周期里进行打开和开预览。 首先要反省下,去年就推出了静态图片的人脸检测demo,当时许诺一周内推出Camera预览实时检测并绘制的demo,结果拖到现在才整。哎,?潘恳惶煊忠惶欤?沲砂 T?emo制作过程中

  • 电脑显示无法识别usb设备怎么办 2014-07-18

      usb设备越来越普遍,几乎所有的设备都有usb化的趋势,如打印机、摄像头、mp3、mp4、阅读机,但很多时候,我们使用usb设备却不是那么的顺利。经常出现“无法识别的usb设备”的提示,那么为什么会出现此提示,如何解决呢?   usb无法识别主要是以下几个思路出发,首先如果是初次在一台电脑上,当出现usb无法识别的时候,需要做的是分析清楚到底是usb设备产品的问题还是电脑或线路的问题以及是否存在驱动问题。当以前使用过该usb设备,现在不可以用的话,驱动问题就可以简单的排除掉。   例如,有一

  • Android--判断文本文件编码 2013-04-15

    方法1:利用windows文本文件编码特点。 windows下,Unicode、Unicode big endian和UTF-8编码的txt文件的开头会多出几个字节,分别是FF、FE(Unicode),FE、FF(Unicode big endian),EF、BB、BF(UTF-8)。 public static String getCharset(File file) { String charset = "GBK"; byte[] first3Bytes = new byte[3]; try

  • 打造U盘系统盘的完美秘笈 2012-01-31

      一、工具/原料   一个U盘,也可以是手机或数码相机内存卡通过读卡器与电脑连接;   一个可引导的系统ISO镜像,可以是安装版、克隆版,可以是维护盘、WinPE等;   刻录软件UltraISO,用单文件绿色版就可以了,金狐软件包里一直都有它;   二、步骤/方法   1、启动UltraISO,点击“文件”菜单下的“打开”按钮,打开已准备好的ISO镜像文件,如JINHU_SYSTEM_TOOL_2009.iso   2、在UltraISO界面左下角的“本地目录”里定位到桌面上的“金狐作品”这

  • 菜鸟!形形色色的主板接口你都认识吗? 2012-10-22

      随着PC扩展功能的不断增强以及可连接外设的增多,如果采用非标准化的连接规范必然造成信息在速度、时序、数据格式以及类型等方面的不匹配,因此出现了形形色色的外部接口标准,标准PC的外部接口通常包括串口、并口、PS/2接口、USB接口、网络接口、音频接口和VGA接口等,在本文和后续文章中将分别对其进行介绍,在本文中将向大家介绍主板集成的外部接口。 一、并行接口(Parallel Port/Interface)   并口采用25针的双排插口,除最普遍的应用于打印机以外,还可用于连接扫描仪、ZIP驱动

  • 通过U盘启动盘制作工具装系统 2012-12-07

      第一、首先,我们启动UltraISO,点击“文件”菜单下的“打开”按钮,打开已准备好的ISO镜像文件,把要加入ISO镜像的所有文件选中后按住鼠标左键拖到右上角的区域。   要添加的文件如果原来ISO镜像里已经存在会弹出“是否替换”的提示,确定要替换就选“是”,这样就完成了ISO镜像的修改。如果以后还需要用到这个修改过的ISO镜像的话,可以通过点击“文件”菜单下的“保存”或“另存为”保存修改后的ISO镜像。   接下来就是刻录U盘的过程了。点击菜单栏里的“启动”菜单下的“写入硬盘映像”命令,打

  • [知识大扫盲]微单和单反的差异区别 2013-04-23

      通常,对相机有所了解的人都认为单反和微单差异的根本就在如上所述的取景方式上,这话说得没错,但实际上单反和微单仍有各种主要结构方面的差异。但构成这些差异的本质就在相机的体积上。   相机的本质工作是拍照,拍照所要达到的目标自然是越来越好的图像质量。但要获得较好的图像质量,往往是以牺牲相机的体积和便携性为代价的。当相机出现在家庭及旅游、生活纪录等场合时,便携性就显得尤为重要。微单的出现正是试图将便携性和成像质量二者达到平衡状态的中庸之道。   什么是单反   台湾及香港地区将单反相机称作“单眼”

Copyright (C) quwantang.com, All Rights Reserved.

趣玩堂 版权所有 京ICP备15002868号

processed in 0.066 (s). 10 q(s)