彩色图像转YUV格式序列存取(陆)

图像RGB与YUV转换优化 本文主要介绍如何优化您自己的CODE,实现软件的加速。我们一个图象模式识别的项目,需要将RGB格式的彩色图像先转换成黑白图像。图像转换的公式如下: 阅读详情
  
任务:打开一幅24位彩色图像,将RGB转换为YUV格式序列,将YUV序列存储到ADO数据库中,并且同ListCtrl相关联.
 10.30           晴
作者:陆建
 
1.RGB与YUV格式序列转换
 
第一个公式是YUV转换RGB(范围0-255)时用的,第二个公式是用在YUV(601)也成为YCbCr转换RGB(范围0-255)时用的。
1.
Y = 0.299R + 0.587G + 0.114B
U = -0.147R - 0.289G + 0.436B
V = 0.615R - 0.515G - 0.100B
 
R = Y + 1.14V
G = Y - 0.39U - 0.58V
B = Y + 2.03U
2.
B= 1.164 * (Y - 16) + 2.018 * (U - 128)
G= 1.164 * (Y - 16) - 0.38 * (U - 128) - 0.813 * (V - 128)

R= 1.164 * (Y - 16) + 1.159 * (V - 128)
2.虚拟列表控件是指带有LVS_OWNERDATA风格的列表控件
    虚拟列表控件使用起来非常简单。它总共只有三个相关的消息,如果你直接使用CListCtrl,应该在对话框中响应这三个消息。如果你使用CListCtrl派生类,可以在派生类中响应这三个消息的反射消息。这三个消息分别是:
 (1)LVN_GETDISPINFO 控件请求某个数据
 (2)LVN_ODFINDITEM  查找某个数据
 (3)LVN_ODCACHEHINT 缓冲某一部分数据
我们必须响应的消息是(1),多数情况下要响应(2),极少数的情况下需要响应(3).
1、处理 LVN_GETDISPINFO 通知消息
当虚拟列表控件需要某个数据的时候,它给父窗口发送一个 LVN_GETDISPINFO通知消息,表示请求某个数据。因此列表的所有者窗口(或者它自己)必须处理这个消息。例如派生类的情况 (CMyListCtrl是一个虚拟列表类对象):
//这里处理的是反射消息
BEGIN_MESSAGE_MAP(CMyListCtrl, CListCtrl)
   //{{AFX_MSG_MAP(CMyListCtrl)
   ON_NOTIFY_REFLECT(LVN_GETDISPINFO, OnGetdispinfo)
   //}}AFX_MSG_MAP
END_MESSAGE_MAP()
在LVN_GETDISPINFO的处理函数中,必须首先检查列表请求的是什么数据,可能的值包括:
(1)LVIF_TEXT   必须填充 pszText
(2)LVIF_IMAGE  必须填充 iImage
(3)LVIF_INDENT 必须填充 iIndent
(4)LVIF_PARAM  必须填充 lParam
(5)LVIF_STATE  必须填充 state
根据它的请求,填充所需的数据即可。
//================= 例子代码===========================
下面的给出一个例子,填充的是列表所需的某个数据项的文字:
LV_DISPINFO* pDispInfo = (LV_DISPINFO*)pNMHDR;
LV_ITEM* pItem= &(pDispInfo)->item;
int iItemIndx= pItem->iItem;
if (pItem->mask & LVIF_TEXT) //字符串缓冲区有效
{
switch(pItem->iSubItem){
        case 0: //
填充数据项的名字
                 text=m_database[itemid].m_one;
                     lstrcpyn(pItem->pszText, text, pItem->cchTextMax);
                     break;
        case 1: //
填充子项1
                  text=m_database[itemid].m_two;
                     lstrcpyn(pItem->pszText, text, pItem->cchTextMax);
                     break;       
 case 2: //填充子项2
                  text=m_database[itemid].m_three;
                     lstrcpyn(pItem->pszText, text, pItem->cchTextMax);
                     break;
}
    注意:在虚拟列表控件中由于对控件的属性设为OwnDtata,所以m_list.InsertItem(0,"Item   1_1");//m_list.SetItemText(0,1,0)等都不能用,通过利用MFC提供的vector类来进行数据的插入.
  
MFC对vector类的解释:
     The STL vector class is a template class of sequence containers that arrange elements of a given type in a linear arrangement andallow fast random access to any element. They should be the preferred container for a sequence when random-access performance is at a premium.
3.ADO库中包含三个基本接口:它们分别是_ConnectionPtr、_RecordsetPtr和_CommandPtr。要注意的是数据的更新,即当输出数据后弹出vector类中的数据,这我主要在OnReadaccess()构造函数中利用了vector类的pop_back()函数,同时增加了一个变量的循环判断,即循环一次递减一,来读取任意长度的数据段。
有一个问题是由于没对数据库的删除,当连续读写后程序会很大,这对文件的保存和读写很不方便,需要重新编写一下!
matlab实现rgb转化为yuv格式 用matlab代码rgb转yuv格式(包含yuv420sp,yuv420p,yuv422i等),输出二进制文件和文本文件,其中二进制.yuv文件用yuvplayer软件可以打开正确显示。 立即下载

相关推荐

任意图像格式转YUV420程序

自己编写的一段基于python3.6 和skimage包的小代码。支持把任意格式的图像转换为YUV420采样格式,直接修改输入输出图像路径即可使用。

图像的基础操作

1 图像的基础操作 目标 • 获取像素值并修改 • 获取图像的属性(信息) • 图像的 ROI() • 图像通道的拆分及合并 几乎所有这些操作与 Numpy 的关系都比与 OpenCV 的关系更加紧密,因此熟练 Numpy 可以帮助我们写出性能更好的代码。 (示例将会在 Python 终端中展示,因为他们大部分都只有一行代码) 1.1 获取并修改像素值 处理灰度图像的实例:指定位置的像素都...

Try My Best! 747

读取YUV文件,转化为RGB图片,并保存

Matlab读取yuv文件,将之转化为RGB,并提取出一帧帧进行保存

图像编码YUV420格式

一、YUV简介 YUV,是一种颜色编码方法。常使用在各个视频处理组件中。 YUV在对照片或视频编码时,考虑到人类的感知能力,允许降低色度的带宽。 “Y”表示明亮度(Luminance或Luma),也就是灰阶值,“U”和“V”表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。RGB 和 YUV 为两种经常使用的像素格式。下面有对RGB编码详细的解释 编码 RGB图像具有三个通道 R、G、B,分别对应红、绿、蓝三个分量,由三个分量的值决定...

yh13572438258的博客 9297

MT5策略如何设置回测结果才能最接近实盘

摘要:在MT5回测中,选择"每笔分笔报价"模式最接近实盘交易,因其使用真实Tick数据模拟价格波动、点差和滑点。关键设置包括:下载高质量历史数据、合理设定点差和滑点、使用正常回测速度。该模式能准确测试挂单、止盈止损等策略,虽然速度较慢但结果最可靠,避免其他模式造成的失真,是评估交易策略表现的最佳选择。(149字)

weixin_38915451的博客 1877

ABAQUS中CDP模型在钢筋混凝土节点低周反复荷载模拟的关键技术解析

本文深入解析了ABAQUS中CDP模型在钢筋混凝土节点低周反复荷载模拟中的关键技术。通过详细介绍CDP模型的核心价值、建模关键技术、滞回曲线优化方法及典型问题排查指南,帮助工程师精准模拟混凝土的拉伸开裂和压缩压碎行为,提升抗震分析效率。文章还提供了实用的工程应用技巧,如快速建模模板和后处理自动化脚本。

weixin_30555125的博客 525

MATLAB读取一张RGB图片转成YUV420格式、YUV422格式、YUV444格式

转:https://www.cnblogs.com/hythink/p/5421720.html  1.读入照片 控制输出的标志定义 1 2 3 4 5 6 7 8 9 10 11 clc;close all;clear YES = 1; NO = 0; %YES表示...

澍yeah的博客 7355

JAVA进阶面试题:如何设计一个高并发系统?

如何设计一个高并发系统? 面试官心理分析 说实话,如果面试官问你这个题目,那么你必须要使出全身吃奶劲了。为啥?因为你没看到现在很多公司招聘的 JD 里都是说啥,有高并发就经验者优先。 如果你确实有真才实学,在互联网公司里干过高并发系统,那你确实拿 offer 基本如探囊取物,没啥问题。面试官也绝对不会这样来问你,否则他就是蠢。 假设你在某知名电商公司干过高并发系统,用户上亿,一天流量几十亿,高峰期并发量上万,甚至是十万。那么人家一定会仔细盘问你的系统架构,你们系统啥架构?怎么部署的?部署了多少台机器

uuop155的博客 1019

【OpenCV】图像转成YUV420 I420格式

一、YUV420 I420介绍 一种颜色编码方法,在YUV色彩空间中,Y表示亮度信号,U、V表示色度信号; 其YUV排列如下,4个Y分量(2x2)对应一个U和V, Y存放完,接着存放U,U存放完,最后是V分量 二、代码实现(opencv2.4.8) #include <opencv/highgui.h> #include <opencv/cv.h>...

weixin_34372728的博客 1140

从宁德新能源面试官视角,拆解Halcon/OpenCV图像处理工程师的硬核技能树(附避坑指南)

本文从宁德新能源面试官视角出发,详细拆解Halcon/OpenCV图像处理工程师的核心技能树,涵盖硬件选型、算法实现和系统工程思维三大能力维度。文章提供工业视觉工程师面试的实战避坑指南,包括硬件配置要点、算法优化技巧及职业发展路径,助力求职者系统提升图像处理专业技能。

weixin_28732953的博客 127

瑞芯微RV1109平台GT911触摸屏驱动调试记录1

很明显这里可以看到系统已经配置了i2c-0、i2c-1、i2c-3、i2c-4、i2c-5,当开机的时候系统已经将相应的I2C节点注册成功了,说明I2C部分是没有问题的。

bingdund的博客 297

YUV像素减半之代码优化

文章目录一、之前的代码二、为啥要优化代码 一、之前的代码 #include <stdio.h> #include <stdlib.h> int main() { FILE *fp1 = NULL; FILE *fp2 = NULL; unsigned char *readBuf; readBuf = malloc(256*256*3/2); fp1 = fopen("lena_256x256_yuv420p.yuv","rd+"); f

永不秃头的程序员的博客 303

Open-AutoGLM 实战:手把手教你用 AI 操作手机「喂饭教程」

Open-AutoGLM 是一个由智谱AI开源的手机操作智能体框架,由手机端智能助手框架Phone Agent和9B大小的模型AutoGLM-Phone-9B组成,借助ADB自动执行点击、滑动、输入等操作——用户只需用自然语言描述任务,系统便能自动规划并完成整个操作流程。

blues_C的博客 1267

YUV420图像格式

YUV中的Y是指“灰度”或者“明亮度” ,英语表达为Luminance、Luma,luminance 表示为 Y, luma 表示为 Y。Y与RGB的演算关系为:Y = 0.2126 R + 0.7152 G + 0.0722 B,Y = 0.2126 R + 0.7152 G + 0.0722 B ,符号 表示使用了Gamma compression。(参见http://en.wik

shallon 的笔记 3万+

2026年数学建模国赛B题无线电干扰源的快速自动定位与清除 论文详细解析

数学建模竞赛论文无线电干扰源的快速自动定位与清除2026 年高教社杯全国大学生数学建模竞赛 B 题完整求解论文交会定位、极大极小测点优化、自适应多频道搜索与定向源恢复的统一建模模型、算法、代码、图表与验证一体化交付本文研究圆形目标区域中多个未知无线电干扰源的快速检测、定位与清除问题,建立了由误差楔交会模型、角度观测信息模型、分层勘测模型、鲁棒射线交会模型和定向覆盖反馈模型组成的统一求解框架。模型同时覆盖题目中的四个子问题:多测向射线形成的多边形定位区域及直径、第二个测点的极大极小优选、全向源自动搜索清除策略

YOLO 357

2025国赛数学建模A题 完整Python代码 烟幕干扰弹的投放策略

常量定义G = 9.8 # 重力加速度 m/s²V_SMOKE_SINK = 3 # 烟幕下沉速度 m/sMISSILE_SPEED = 300 # 导弹速度 m/sEFFECTIVE_RADIUS = 10 # 有效遮蔽半径 mEFFECTIVE_DURATION = 20 # 有效遮蔽时间 sTARGET_POS = np.array([0, 200, 0]) # 目标位置FALSE_TARGET_POS = np.array([0, 0, 0]) # 假目标位置# 初始位置。

YOLO 1106

视音频数据处理入门:RGB、YUV像素数据处理

有段时间没有写博客了,这两天写起博客来竟然感觉有些兴奋,仿佛找回了原来的感觉。前一阵子在梳理以前文章的时候,发现自己虽然总结了各种视音频应用程序,却还缺少一个适合无视音频背景人员学习的“最基础”的程序。因此抽时间将以前写过的代码整理成了一个小项目。

雷霄骅(leixiaohua1020)的专栏 29万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

RGB格式图片转YUV图片

RGB 转换 YUV 图片格式转换

weixin_49006581的博客 5931

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

RGB与YUV颜色空间

<br /><br />      计算机彩色显示器显示色彩的原理与彩色电视机一样,都是采用R(Red)、G(Green)、B(Blue)相加混色的原理:通过发射出三种不同强度的电子束,使屏幕内侧覆盖的红、绿、蓝磷光材料发光而产生色彩。这种色彩的表示方法称为RGB色彩空间表示(它也是多媒体计算机技术中用得最多的一种色彩空间表示方法)。<br />      根据三基色原理,任意一种色光F都可以用不同分量的R、G、B三色相加混合而成。<br />      F = r [ R ] + g [ G ] + b

暂时为空 3882

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

详解YUV数据格式

转自:http://www.cnblogs.com/azraelly/archive/2013/01/01/2841269.html 作者:azraelly 转自:未知(大家貌似都是转载) 作者:未知   YUV格式有两大类:planar和packed。 对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。 对于packed

lucky_greenegg的专栏 8万+

OpenCV中的RGB与YUV转换

对OpenCV中RGB与YUV转换所要注意的地方进行详细记录。

生活就像海洋 1万+

YUV格式详解

YUV是指亮度参量和色度参量分开表示的像素格式,而这样分开的好处就是不但可以避免相互干扰,还可以降低色度的采样率而不会对图像质量影响太大。YUV是一个比较笼统地说法,针对它的具体排列方式,可以分为很多种具体的格式。转载一篇对yuv格式解释的比较清楚地文章,也可以直接参考微软的那篇文章。对于YUV格式,比较原始的讲解是MPEG-2 VIDEO部分的解释,当然后来微软有一个比较经典的解释,中文的大

10万+

一文掌握 YUV 图像的基本处理

YUV 图片 YUV 的由来 YUV 是一种色彩编码模型,也叫做 YCbCr,其中 “Y” 表示明亮度(Luminance),“U” 和 “V” 分别表示色度(Chrominance)和浓度(Chroma)。 YUV 色彩编码模型,其设计初衷为了解决彩色电视机与黑白电视的兼容问题,利用了人类眼睛的生理特性(对亮度敏感,对色度不敏感),允许降低色度的带宽,降低了传输带宽。 在计算机系统中应用尤为广泛,利用 YUV 色彩编码模型可以降低图片数据的内存占用,提高数据处理效率。 另外,YUV 编码模型..

翻肚鱼儿的博客 2733

YUV和YCbCr

1.RGB:拥有色调,宽度,饱和度,但是他们是一体的,不能数字化调整,所以需要可以数字化调整的色彩表达方式 色调                     宽度                     饱和度     2.YUV是space color(色彩空间)的一中     2-1: space color:例如RGB,用red作为x轴,green作为y轴,blue作为z轴,那么RG...

Xiao_peng117的博客 910

ffmpeg工具之yuv数据生成器

1.YUV数据生成器 [上一篇讲解h264/yuv文章](https://blog.youkuaiyun.com/zhiyanzhai563/article/details/62226959) 从存储格式以及像素采样对yuv进行了简要说明,更为详细的阐述可参考 : https://blog.youkuaiyun.com/byhook/article/details/84037338 如下是重点: YUV420P,...

zhiyanzhai563的博客 1836

android yuv取灰度图_「越俎代庖」之 Photoshop 通道抠图

身为数码科技自媒体的一名小编,有时候也得在 Photoshop 这些图像软件上学上一两手,以免我司美编突如其来的请(tōu)假(lǎn)而导致日常的一些图片内容无法提供的状况发生。而在这些小编偷偷学来的PS技能中,抠图应该算是最常用且重要的一种。以小编我的水平,抠抠手机渲染图还勉强能应付,毕竟棱角分明背景纯净,用用快速选择工具,或者进阶一点的钢笔工具就能搞定。然而有时要抠人像的时候,小编便无计可施...

weixin_32288959的博客 398
上一篇: 用分水岭算法实现图像分割 (祝勇)
下一篇: VC调试入门 范鲁艳 11.18
TargetStudio
博客等级 码龄20年 3粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值