ADI Blackfin DSP处理器-BF533的开发详解50:RGBtoGary (图像灰度提取处理)(含源码)

news2024/11/27 18:49:04

硬件准备

ADSP-EDU-BF533:BF533开发板
AD-HP530ICE:ADI DSP仿真器

软件准备

Visual DSP++软件

硬件链接

在这里插入图片描述

功能介绍

代码实现了图像灰度提取处理,代码运行时,会通过文件系统打开工程文件根目下" …/ImageView"路径中的 testin.bmp文件,进行图像灰度提取处理后把图片保存到工程文件根目下" …/ImageView"路径中的 testout.bmp 文件,并且将处理后的图片显示到液晶屏上。例子中的算法只支持尺寸为 480*272 的 24bit 的 bmp 图片,可以根据自己的需要自行调整

代码使用说明

funct.c 中的 RGBtoGary (const BMPIMAGE *img)

该函数是将读取的图像进行灰度提取 。
BMPIMAGE * 图像结构体指针

在 main.c 文件中定义了一个#define LCD_VIEW_ENABLE 宏开关,如果不需要将处理后的图片显示在液晶屏上,只需将这个宏开关注释掉

代码实验步骤

  1. 将工程文件根目下的 ImageView 文件夹内存放一个名为 testin.bmp 的图像文件,该文件尺寸为 480*272 的24bit 的 bmp 图片(默认已存一幅测试图片)。
  2. 打开工程文件 BF53x_RGBtoGary.dpj,编译并运行代码
  3. 等待图像处理,处理完成之后会在液晶屏上显示处理后的图片,并在工程文件根目下的 ImageView 文件夹内生成一个处理后名为 testout.bmp 图片。

代码实验结果

1.液晶屏上显示处理后的图片。
2.在工程文件根目下的 ImageView 文件夹中查看处理后名为 testout.bmp 图片。

程序源码

#include “bmp.h”

/********************************************************

  • 函数名 : RGBtoGary
  • 函数功能 : 图像灰度提取处理
  • 函数参数 : BMPIMAGE * 图像结构体指针
  • 函数返回值 :FALSE 处理失败
  •   			TRUE	处理成功
    

*******************************************************/
int RGBtoGary(BMPIMAGE
img)
{
// 指向源象素的指针
unsigned char *lpSrc = img->imgbuf;;

int i;
unsigned char gray;	

// 图像的宽度和高度
long lWidth;
long lHeight;


lWidth = img->infohead.BiWidth;
lHeight = img->infohead.BiHeight;

for(i=0;i<lWidth*lHeight*3;i=i+3)
{
	gray =( lpSrc[i+0]*229+lpSrc[i+1]*587+lpSrc[i+2]*114+500)/1000;
	lpSrc[i+0]=gray;
	lpSrc[i+1]=gray;
	lpSrc[i+2]=gray;
}
// 返回
return TRUE;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/85759.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OPENGL ES 2.0 知识串讲(1)――OPENGL ES 2.0 概括

前言 电脑是做什么用的? 电脑又被称为计算机,那么最重要的工作就是计算。看过三体的同学都知道, 电脑中有无数纳米级别的计算单元,通过 0 和 1 的转换,完成加减乘除的操作。 是什么使得电脑工作? 驱动,驱使着硬件完成工作。 谁来写驱动? 制造电脑的公司自己来写驱动,因…

#芯片# N25Q128A21BSF40F

数据手册下载链接&#xff1a;N25Q128A21BSF40F 0. 指令集 1.基本介绍 SPI兼容串行总线接口。108 MHz&#xff08;最大&#xff09;时钟频率。推荐工作电压&#xff1a;1.8 V。单电源电压1.7 V至2 V。支持传统SPI协议&#xff0c;Quad I/O或Dual I/O SPI协议。四路/双路I/O指…

bug的生命周期你知道吗?一张图带你看懂它!

目录 1、什么是bug 2、bug的生命周期 3、如何描述一个bug 4、bug的级别 1、什么是bug 软件的bug狭义方面可以理解为是指软件程序的漏洞或缺陷&#xff0c;广义方面除找到程序漏洞之外&#xff0c;还包括测试工程师或用户所发现和提出的软件可改进的细节、或与需求文档存在差…

【全网惟一面向软件测试人员的Python基础教程】- 你知道Python代码是怎样运行的吗?

全网惟一面向软件测试人员的Python基础教程 起点&#xff1a;《python软件测试实战宝典》介绍 第一章 为什么软件测试人员要学习Python 第二章 学Python之前要搞懂的道理 第三章 你知道Python代码是怎样运行的吗&#xff1f; 文章目录全网惟一面向软件测试人员的Python基础教程…

如何写好科研论文:Introduction(2)

导读 本系列[1]将切片介绍如何写好科研论文&#xff0c;包含了&#xff1a;摘要&#xff0c;背景介绍&#xff0c;方法&#xff0c;结果&#xff0c;讨论等。 由于翻译能力有限&#xff0c;强力推荐有需要的伙伴&#xff0c;直接在文末找到参考链接&#xff0c;阅读原文&#x…

外汇天眼:Swissquote获得CySEC许可证、BUX收购Ninety Nine

新的一周开始了&#xff0c;那么在过去的一周里备受大家关注的外汇行业新闻都有哪些呢&#xff1f;天眼君现在带大家回顾&#xff0c;比如Swissquote获得CySEC许可证、BUX收购西班牙新交易商Ninety Nine的零售经纪部门、Saxo Bank以“时机不合适”为理由终止与SPAC IPO合作。具…

12.3、后渗透测试--持久化后门

攻击主机&#xff1a; Kali 192.168.11.106靶机&#xff1a;windows server 2008 r2192.168.11.134零、为何要创建后门 当成功获取目标系统的访问权限后&#xff0c;需要寻找方法来恢复与目标主机的连接&#xff0c;而无需再进入目标系统。如果目标用户破坏了该连接&#xff0c…

Metal每日分享,虚假颜色混合滤镜效果

本案例的目的是理解如何用Metal实现虚假颜色效果滤镜&#xff0c;使用图像的亮度在两种用户指定的颜色之间进行混合&#xff1b; Demo HarbethDemo地址 实操代码 // 混合颜色 let filter C7FalseColor.init(fristColor: .blue, secondColor: .green)// 方案1: ImageView.im…

BMVC2022 | HR-VQVAE:用于图像重建和生成的基于Hierarchical Residual Learning的VQVAE

原文标题&#xff1a;Hierarchical Residual Learning Based Vector Quantized Variational Autoencoder for Image Reconstruction and Generation 链接&#xff1a;https://bmvc2022.mpi-inf.mpg.de/0636_poster.pdf paper&#xff1a;https://arxiv.org/abs/2208.04554 一…

新业务势头强劲,晨光股份转型之路走得如何?

近期&#xff0c;据网传的一份文件显示&#xff0c;上海晨光文具股份有限公司&#xff08;以下简称“晨光文具”、“晨光股份”、“晨光”“公司”&#xff09;将于11月29日起&#xff0c;暂停线上线下店面等渠道的A4纸销售。晨光股份&#xff08;603899.SH&#xff09;针对此份…

PreScan快速入门到精通第四十一讲图像分割传感器

图像分割传感器(ISS)是一种生成语义分割图像的工具。它在诸如分类、(深度)学习、行人识别、避免碰撞等应用领域非常有用。ISS通常与相机传感器结合使用,以获得被分割的图像。 摄像机传感器 ISS语义类型颜色 ISS语义目标颜…

Vue3+Vite4+Naive-UI 项目自动导入API和组件

一、Vue3常用API导入 安装依赖 pnpm i -D unplugin-auto-import进行Vite配置 文件名&#xff1a;vite.config.ts import { defineConfig } from vite import vue from vitejs/plugin-vue import AutoImport from unplugin-auto-import/vite// https://vitejs.dev/config/ ex…

HDOCK 蛋白蛋白对接软件使用;LZerD网页在线对接

参考&#xff1a; http://hdock.phys.hust.edu.cn/ 注&#xff1a;本文章是取6BOY这蛋白&#xff0c;下载用pymol划分成DDB1-CRBN部分蛋白与BRD4部分蛋白&#xff0c;用这两个蛋白进行软件的对接测试 https://www.rcsb.org/structure/6BOY 一、HDOCK 蛋白蛋白对接软件使用 …

@Enumerated的使用

前言 今天做测试&#xff0c;发现还没有试过实体类中关于枚举项的使用&#xff0c;于是就做了个测试&#xff0c;发现了点问题&#xff08;发现的问题主要是针对我使用的ORM框架是Ebean&#xff0c;它自带了一个比Enumerated更好用的注解和方式&#xff09;。 不多说&#xf…

翻硬币(蓝桥杯C/C++B组真题详解)

目录 题目描述&#xff1a;1208. 翻硬币 - AcWing题库 题目思路&#xff1a; 代码详解&#xff1a; 题目描述&#xff1a;1208. 翻硬币 - AcWing题库 题目思路&#xff1a; 这题我们可以用模拟直接模拟操作 也可以直接推出规律 这里就讲解推出的规律 因为每次必须选择两个…

[附源码]计算机毕业设计二次元信息分享平台的设计及实现Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot mybatis MavenVue等等组成&#xff0c;B/S模式…

[操作系统笔记]请求分页管理方式

内容系听课复习所做笔记&#xff0c;图例多来自课程截图 操作系统需要提供两大功能&#xff1a; 请求调页&#xff1a;缺失页面调入内存页面置换&#xff1a;暂时不用的换出外存 页表机制 原先的页式管理使用的页表并不能满足新的需求&#xff0c;因此需要为页表增加新的页表…

《垃圾回收算法手册 自动内存管理的艺术》——运行时接口(笔记)

文章目录十一、运行时接口11.1 对象分配接口11.1.1 分配过程的加速11.1.2 清零如何清零何时清零11.2 指针查找11.2.1 保守式指针查找11.2.2 使用带标签值进行精确指针查找11.2.3 对象中的精确指针查找11.2.4 全局根中的精确指针查找11.2.5 栈与寄存器中的精确指针查找11.2.6 代…

DI Blackfin DSP处理器-BF533的开发详解47:图像处理专题-Resize (图像缩放处理)(含源码)

硬件准备 ADSP-EDU-BF533&#xff1a;BF533开发板 AD-HP530ICE&#xff1a;ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 功能介绍 代码实现了图像缩放处理&#xff0c;代码运行时&#xff0c;会通过文件系统打开工程文件根目下" …/ImageView"路径中的 tes…

JUnit 测试框架

JUnit注解test 注解BeforeEach 注解BeforeAll AfterEachAfterAll断言assertEqualsassertNotEqualsassertTrue用例执行顺序测试套件指定类&#xff0c;添加到套件中并执行一次添加一个包的类参数化单参数多参数借助文件动态参数注解 test 注解 通过对方法加上 test 注解&#…