zoukankan      html  css  js  c++  java
  • brew qsc6085 camera 一

    最近在brew 平台做。遇到一问题,已经量产的手机,由于结构上跟闪光灯隔离不够,导致有些手机拍照之后,会周边泛桔色,卖出去的手机,只可能通过手机软件升级来解决问题。发现把照片的整体红色减少之后,能弱化桔色,所以想到的办法时,在保存图片时,对图片做一些处理。

    由于相关的代码camera_svcs.c是qualcomm写的,所以提了case 询问了qualcomm,图片的保存格式是:

    1. 主图片是YCbCr:420

    2. 缩略图是YCbCr:422

    YCbCr 其中Y代表亮度,Cb代表蓝色,Cr代表红色

    在static void camera_jpeg_encode (qcamrawHeaderType *main_image_header, uint8 *main_image_buffer, qcamrawHeaderType *thumbnail_image_header, uint8 *thumbnail_image_buffer)时做一些处理:

    main_image_buffer 是主图片buffer,此处主要是对主图处buffer做处理, thumbnail_image_buffer 是缩略图buffer

     1   if (camera_flash_on) // 如果闪光灯开启的话
     2   {
     3           MSG_HIGH ("==camera_flash_on is true==", 0, 0, 0);   
     4           //0000,0000,0960,1280,0000,-024,0000;
     5            x = 0;
     6            x1 = 960;
     7            y = 0;
     8            y1 = 1280;
     9            ycb = 0;
    10            cr = -24;
    11            cb = 0;
    12            picX = 1280;
    13             for ( ; x <= x1 ; ++x)
    14             { 
    15                 for(ySize = y; ySize <= y1; ++ySize)
    16                 {
    17                    mainSize = x*(picX-1)+ySize;
    18                    if (mainSize > main_image_header->YSize)//Ysize = 1228800
    19                    {
    20                       mainSize = main_image_header->YSize -1;
    21                    }
    22                    tmpY = main_image_buffer[mainSize] + ycb;  //对亮度做调整
    23                    if (tmpY >255) tmpY = 255;
    24                    if (tmpY <0) tmpY = 0;
    25                    main_image_buffer[mainSize] = tmpY;
    26 ///*=================YCbCr 420===========================
    27                    cbCrSize = mainSize /2;
    28                    if (cbCrSize > main_image_header->CbCrSize)//CbCrSize = 614400
    29                    {
    30                       cbCrSize = main_image_header->CbCrSize -1;
    31                       MSG_HIGH("---illegality cbCrSize=%d", cbCrSize,0, 0);
    32                    }
    33                    cbCr = main_image_header->chromaBuffer[cbCrSize];
    34 
    35                    if (ySize % 2 == 0)
    36                    {
    37                       if (cb != 0)
    38                       {
    39                          cbCr = cbCr + cb;
    40                          if (cbCr > 255) cbCr =255;
    41                          if (cbCr < 0) cbCr =0;
    42                       }
    43                    }
    44                    else
    45                    {
    46                       if (cr != 0)
    47                       {
    48                          cbCr = cbCr + cr;
    49                          if (cbCr > 255) cbCr =255;
    50                          if (cbCr < 0) cbCr =0;
    51                       }
    52                    }
    53                    main_image_header->chromaBuffer[cbCrSize] = cbCr;
    54 //============================End==========================*/
    55                 }
    56             }
    57   }
  • 相关阅读:
    关于gis未来的发展
    javascript中replace(regExp, function)用法
    万恶的IE之动态添加DOM节点触发window.resize事件
    jquery气泡提示效果
    万恶的IE之鬼影重重
    flash LocalConnection Error #2044: 未处理的 AsyncErrorEvent:
    去掉if/else
    JSTL分页
    jquery实现搜索框类似提示功能(改进)
    C# 操作IIS
  • 原文地址:https://www.cnblogs.com/shed/p/3512296.html
Copyright © 2011-2022 走看看