打印

【创龙TMS320C665x开发板试用】RGB24 图像转灰度

[复制链接]
627|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qaz098xsw|  楼主 | 2016-10-14 17:17 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

点击“打开”选择需要转换的图片,选择“输出数据类型”、“扫描模式”、“输出灰度”、“最大宽度和高度”,然后点击“保存”,这里保存的名字为Image.c




相关代码如下:

#include <stdio.h>                  // C 语言标准输入输出函数库

#include "Image.h"                  // 24 位 RGB 彩色图片 蓝B 绿G 红R 排列

// 软件断点
#define SW_BREAKPOINT     asm(" SWBP 0 ");

typedef struct
{
   unsigned char Blue;    // 蓝色分量
   unsigned char Green;   // 绿色分量
   unsigned char Red;     // 红色分量
} tagRGB24;
typedef struct tagRGB24 RGB24;
unsigned char Gray[240000];

void RGB2Gray(unsigned int N, const unsigned char *Image, unsigned char *Gray)
{
     unsigned int i;
    for(i = 0; i < N ;i++)
     {
         // 原始公式
//        Gray
= Image[3 * i + 2] * 0.299 + Image[3 * i + 1] * 0.587 + Image[3 * i] * 0.114;
         // 8 位精度优化
         Gray
= (Image[3 * i + 2] * 76 + Image[3 * i + 1] * 150 + Image[3 * i] * 30) >> 8;
     }
}

int main(void)
{
     // 转换 RGB24 图片为灰度图
     // 前 8 个字节是图片信息
     RGB2Gray(240000, Image +8, Gray);
    // 断点
     SW_BREAKPOINT;
}

image tool 导入的文件

GRB24

<?xml version="1.0" encoding="UTF-8"?>
<java version="1.6.0_13" class="java.beans.XMLDecoder">
<object class="com.ti.dvt.ui.views.core.ImageProp">
  <void property="delegateProp">
   <object class="com.ti.dvt.ui.views.core.RGBProp">
    <void property="blueMask">
     <long>16711680</long>
    </void>
    <void property="greenMask">
     <long>65280</long>
    </void>
    <void property="lineCount">
     <int>51</int>   垂直分辨率
    </void>
    <void property="lineStride">
     <int>612</int>  每行字节数=水平分辨率*颜色字节数
    </void>
    <void property="pixelCountPerLine">
     <int>204</int>  水平分辨率
    </void>
    <void property="pixelStride">
     <int>3</int>    颜色字节数
    </void>
    <void property="redMask">
     <long>255</long>
    </void>
    <void property="startAddress">
     <string>Image + 8</string> 内存地址
    </void>
   </object>
  </void>
  <void property="scrollLock">
   <boolean>true</boolean>
  </void>
</object>
</java>

GRAY

<?xml version="1.0" encoding="UTF-8"?>
<java version="1.6.0_13" class="java.beans.XMLDecoder">
<object class="com.ti.dvt.ui.views.core.ImageProp">
<void property="delegateProp">
<object class="com.ti.dvt.ui.views.core.RGBProp">
<void property="blueMask">
<long>255</long>
</void>
<void property="greenMask">
<long>255</long>
</void>
<void property="lineCount">
<int>51</int>
</void>
<void property="lineStride">
<int>204</int>
</void>
<void property="pixelCountPerLine">
<int>204</int>
</void>
<void property="pixelStride">
<int>1</int>
</void>
<void property="redMask">
<long>255</long>
</void>
<void property="startAddress">
<string>Gray</string>
</void>
</object>
</void>
<void property="scrollLock">
<boolean>true</boolean>
</

本资料来自于网络,仅供学习!

相关帖子

沙发
pl202| | 2016-10-14 22:22 | 只看该作者
转换灰度就是滤镜处理。

使用特权

评论回复
板凳
pl202| | 2016-10-14 22:23 | 只看该作者
以前滤出过雷达图的彩色。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

632

主题

842

帖子

3

粉丝