视频 图像处理
smilestone322
通过软考: 系统架构设计师和信息系统项目管理师考试
工业相机和DVR开发,熟悉windows驱动开发,camera sdk开发,3D摄像头sdk开发。
联系方式:smilestone322@sina.com
展开
-
jpg图片上画框的demo
int _tmain(int argc, _TCHAR* argv[]){ Mat src = imread("E:\\test\\1.jpg"); Rect rect(93, 377, 92, 87);//左上坐标(x,y)和矩形的长(x)宽(y) cv::rectangle(src, rect, Scalar(255, 0, 0), 1, 8, 0); imwrite("src.png", src); imshow("src", src); wait...原创 2020-08-22 17:20:55 · 262 阅读 · 0 评论 -
NV21转jpeg 实现方法---使用libjpeg库
// N21ToJpg.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include "stdio.h"#include "stdlib.h"#include "string.h"extern "C" {#include "libjpeg/jpeglib.h"}#pragma comment(lib, "libjpeg/jpeg-static.lib")#define.原创 2020-06-04 10:17:41 · 2054 阅读 · 0 评论 -
JPEG 压缩原理
一、JPEG算法概要JPEG(Joint Photographic Experts Group)是一个由ISO和IEC两个组织机构联合组成的一个专家组,负责制定静态的数字图像数据压缩编码标准,这个专家组开发的算法称为JPEG算法,并且成为国际上通用的标准,因此又称为JPEG标准。JPEG是一个适用范围很广的静态图像数据压缩标准,既可用于灰度图像又可用于彩色图像。JPEG专家组开发了两种基本原创 2016-03-01 10:46:18 · 2099 阅读 · 1 评论 -
jpeg序列转avi
#ifndef AVI_H#define AVI_H//#include #include #include #include #ifdef __cplusplusextern "C" {#endif void bzero(void *s, int n); typedef unsigned char u8; typedef unsig原创 2014-10-23 21:16:45 · 2186 阅读 · 1 评论 -
ddraw 视频下画图 不闪烁的方法
我们如果是在在RGB视频上画图(直线,矩形等),一般采用双缓冲区继续,使用内存MemoryDC,来实现画的图形在视频上显示不闪烁的功能,但是我们知道用RGB显示视频都是使用GDI进行渲染,这样很耗CPU,那么我们能不能在YUV上进行视频渲染呢,答案是肯定的,使用ddraw直接显示yuv就ok了,可以支持yuv422和yuv420的直接使用显卡显示,不耗CPU,但是我们在使用ddraw显示时,然后在原创 2014-06-21 22:22:34 · 3945 阅读 · 0 评论 -
directx 9.0c sdk api介绍
如题:原创 2014-07-22 15:48:07 · 2175 阅读 · 0 评论 -
directdraw 学习总结
ddraw可以直接操作显存,而gdi或者你的办法是对内存处理,然后从内存copy数据到显存,所以DDRAW比GDI高效!DirectX学习:DirectX中最重要的部分就是DirectDraw了,它是微软最先开发的组件,其中有个概念图像协处理器。图像协处理器主要用于处理显示,它与CPU是并行工作的,由于对图形显示来说,最多的操作时把某块内存的内容移动到另一块内存,所以最初的图形协处理器原创 2011-05-23 20:10:00 · 4135 阅读 · 0 评论 -
RGB bmp转jpeg的方法
RGB转jpeg的方法:先对图像进行预处理,然后DCT变换,量化,然后进行编码,huffman编码或其它编码,就可以转换成jpg了。下面主要讲解使用opencv保存jpg图像,或使用IJG库保存jpg图像,使用opencv保存jpg图像的函数如下: CVAPI(int) cvSaveImage( const char* filename, const CvArr* image,原创 2011-09-09 10:54:03 · 4368 阅读 · 1 评论 -
sdl simple direct layer 库下载目录
http://www.libsdl.org/download-1.2.php H264 编解码资源http://blog.163.com/laorenyuhai126@126/blog/#m=0&t=1&c=fks_084067081083083070092094085095085095082070084081081074 H264实时编码及NALU,RTP传输(续)htt原创 2012-05-09 20:00:10 · 980 阅读 · 1 评论 -
yuv 422 1/4降采样应该注意的地方
在做Yuv 422降采样直接转RGB时,出现一个幼稚的错误,在降采样后,发现显示图像不对,有错位,后面一直检查,发现几个错误,1)在降采样得到的RGB buff,对RGB buff进行移动,然后到最后没有将指针指到开始的位置,2)降采样后得到的图像由于width不是4的整数倍,造成保存bmp位图不能打开,由于我的原始大小的图像是width*height的,降采样后为width/2*height/2原创 2012-05-06 14:15:40 · 2338 阅读 · 0 评论 -
如何动态修改ddraw 表面的width和height
我的意思是用ddraw显示图像时,要根据需要进行缩放,然后显示,但是这样缩放,就必须修改ddraw 表面的width和height 如题:知道的朋友指点下! 自己搞定,初始化函数中传递width和height,每次缩放的时候调用初始化函数。原创 2012-02-24 14:00:12 · 1030 阅读 · 0 评论 -
ddraw rgb显示
看到用direcdraw 显示Yuv视频数据,一点都不耗cpu,就想试下ddraw下RGB的显示,发现我的电脑显卡不支持24位的离屏表面的创建,只好创建一个32位的表面,然后将24位的RGB数据copy到32位的离屏表面,BGRA的格式,现在在blt到主表面,发现cpu反而比直接采用GDI(SetStretchBltMode,StretchDIBits)显示要高,因为copy 数据很耗cpu。不知原创 2012-02-28 11:51:34 · 1907 阅读 · 0 评论 -
RGB转jpeg(opencv或IJG)
RGB转jpeg的方法:先对图像进行预处理,然后DCT变换,量化,然后进行编码,huffman编码或其它编码,就可以转换成jpg了。下面主要讲解使用opencv保存jpg图像,或使用IJG库保存jpg图像,使用opencv保存jpg图像的函数如下: CVAPI(int) cvSaveImage(constchar* filename,constCvArr* image,原创 2016-03-01 10:48:25 · 5787 阅读 · 2 评论 -
JPEG转RGB Bmp(IJG库 jpeg.lib)
JPEG转RGB是RGB压缩的逆过程,从压缩后的图像数据,然后进过熵编码器,在经过量化器(逆),然后在经过逆DCT变换,得到解压后的图像数据,我们在使用jpeg.lib库进行解压,解压的函数如下: //读取JPEG文件//参数://lpstrFileName——包含JPEG文件的全路径名//uWidth——图像的宽度//uHeight——图像的原创 2016-03-01 10:50:00 · 3734 阅读 · 1 评论 -
IJG 库 jpeg转rg888的转换函数
网上的例子都读入 jpeg图片,然后将jpeg转成rgb888,我给出的是传入 jpeg的buffer,解码成rgb888. 解码函数如下:#include "jpeglib.h"#include "jconfig.h"#include "jmorecfg.h"struct jerror_mgr{ jpeg_error_mgr base; jmp_buf jmp;...原创 2019-07-20 17:23:22 · 1055 阅读 · 2 评论 -
Linux之V4L2基础编程
转自:http://www.cnblogs.com/emouse/archive/2013/03/04/2943243.html本文内容来源于网络,本博客进行整理。1. 定义V4L2(Video For Linux Two) 是内核提供给应用程序访问音、视频驱动的统一接口。2. 工作流程:打开设备-> 检查和设置设备属性-> 设置帧格式-> 设置一种输入输出方法(缓转载 2017-11-02 11:44:18 · 362 阅读 · 5 评论 -
ijl JPEG转Yuv422
//JPEG转YUV422 yuyvBOOL DecodeFromJPEGBuffer( JPEG_CORE_PROPERTIES *jcprops, BYTE *lpJPEGBuffer, DWORD dwJPEGBufferSize, BYTE *lpRawBuffer, DWORD *lpdwW原创 2016-03-01 11:11:25 · 1376 阅读 · 0 评论 -
ijl yuv422转jpeg
Ijl是intel的jpg压缩库,函数如下: //ijl 库压缩//ijl库BOOL BeginIJL(JPEG_CORE_PROPERTIES *jcprops){ IJLERR jerr = IJL_OK; jerr = ijlInit(jcprops); if(jerr !=IJL_OK){ pr原创 2016-03-01 11:09:13 · 1678 阅读 · 0 评论 -
Yuv420转Jpeg(C语言实现)
YUV2Jpg(in_Y,in_U,in_V,0x400,0x1b0,75,0x420,pData,&dwSize); 参数说明:in_Y:输入的420的Y分量;in_U:输入的420的U分量,in_V:输入420的V分量;width:表示图像的宽;height表示图像的高;quality表示量化因子,n_Stride表示Yuv的跨度,即Yuv的宽,因为该函数只能处理16的整数倍,原创 2016-03-01 11:07:12 · 7571 阅读 · 1 评论 -
Yuv 422转Jpeg
采用jpeg.lib进行转换#include "jpeglib.h"int yuv422_to_jpeg(unsigned char *data, int image_width, int image_height, FILE *fp, int quality){ struct jpeg_compress_struct cinfo; struct jpeg_er原创 2016-03-01 11:03:20 · 3961 阅读 · 1 评论 -
YuvI420转Jpeg
此处的YUV数据指I420,I422应该做一下修改也能用,这个我没有测试。Jpeg的宽度、和高度可以是任意的,原来在网上找的都只能是16的倍数才行,采用的方法是libjpeg.lib。 函数实现如下:参数说明:Filename:jpg文件名字yuvData:输入的yuv缓存地址quality:压缩质量 1-100image_width:图像宽度image_heigh原创 2016-03-01 11:02:16 · 2647 阅读 · 4 评论 -
Jpeg的文件信息
JPEG文件的格式是分为一个一个的段来存储的(但并不是全部都是段),段的多少和长度并不是一定的。只要包含了足够的信息,该JPEG文件就能够被打开,呈现给人们。JPEG文件的每个段都一定包含两部分一个是段的标识,它由两个字节构成:第一个字节是十六进制0xFF,第二个字节对于不同的段,这个值是不同的。紧接着的两个字节存放的是这个段的长度(除了前面的两个字节0xFF和0xXX,X表示不确定。他们是不算到原创 2016-03-01 10:59:31 · 1946 阅读 · 0 评论 -
使用ijl库Jpg转RGB
#include “ijl.h”BOOL ConverJPG2BID(BYTE *lpJpgBuffer, DWORD dwJpgBufferSize, BYTE *lppRgbBuffer, DWORD *lpdwWidth,原创 2016-03-01 10:54:23 · 1406 阅读 · 0 评论 -
使用intel ijl库 RGB转Jpg
BOOL CRawXXX:: EncodeJpegUseIJL(char *dstfile,int *len,int width, int height, char*srcdata, int imageChannels, int quality){ BOOL res = FALSE; JPEG_CORE_PROPERTIES image;原创 2016-03-01 10:52:20 · 2651 阅读 · 0 评论 -
directdraw显示yuv视频,出现屏保时,yuv显示不出来,表面丢失
原因是:DDrawSurface 丢失, DDraw表面在很多情况下都会丢失(如:启动其他全屏独占程序,屏保,或锁屏时), 表面丢失其实就是表面所使用的内存或显存被DirectDraw系统释放, 分配给其他程序. 如果表面丢失, 对此表面的操作都会返回 DDERR_SURFACELOST , 此时应该调用 IDirectDrawSurface 接口方法 Restore 来恢复表面(重新申请内存原创 2012-02-24 10:25:36 · 3108 阅读 · 3 评论 -
yuv显卡转换rgb
<br />该文是转载:原文地址:<br />http://blog.csdn.net/wangchenggggdn/archive/2010/07/05/5713075.aspx<br /> <br />首先要感谢ffmpeg, 如果没有它,所有做电脑视频----包括PC, 嵌入式, DV/DC,DVD机等公司(也包括我们公司), 一大半得关门。没有它,一些中小公司将无法研发这些编解码器, 没有了这些技术基础,产品将无从谈起;没有它, PC上常见的Mplayer, KMPlayer, 暴风影音等都不会存在转载 2011-05-10 10:08:00 · 2231 阅读 · 0 评论 -
directdraw sdk ddutil.cpp
<br />#ifndef WIN32_LEAN_AND_MEAN<br />#define WIN32_LEAN_AND_MEAN<br />#endif<br />#include <windows.h><br />#include <windowsx.h><br />#include <ddraw.h><br />#include "ddutil.h"<br />extern "C" IDirectDrawSurface* <br />DDLoadBitmap( IDirectDraw* pdd, L原创 2011-05-25 17:38:00 · 1437 阅读 · 0 评论 -
Gige Vision Camera 和usb,1394 camera的优缺点比较
<br />1)GigE Vision相对于模拟标准而言的优势是,它是数字的,无需图像采集卡且更偏重与图像处理功能;相对于Camera Link而言,GigE Vision的优势是它的传输距离长、无需图像采集卡和更偏重于图像处理功能;相对于IEEE 1394而言,GigE Vision的最大数据率更高,传输距离更长;相对于USB 2.0而言,GigE Vision的优势是,它是一项更完整的标准、更高的最大数据率、更长的传输距离。<br /> <br />缺点:<br /> 2) 困扰GigE Visi原创 2011-05-21 11:03:00 · 5886 阅读 · 0 评论 -
使用DirectDraw显示YUV视频
<br />原文出处: http://hi.baidu.com/sdlyfdy/blog/item/06e3c70cc0e57cec36d12297.html/cmtid/fa88294c57129204b2de0552<br />#ifndef _DDRAWDISP_H<br />#define _DDRAWDISP_H<br />#include <ddraw.h><br />class CDDrawDisplay<br />{<br />public:<br />BOOL DDrawDispInit(转载 2011-05-17 09:45:00 · 2987 阅读 · 2 评论 -
DirectDraw Overlay Surfaces
<br />There appears to be a great deal of confusion over how to create and display an overlay surface under DirectDraw so here's some sample code showing (very simply) how to create an overlay and show it stretched into a window. This code is not intended转载 2011-05-16 19:06:00 · 1798 阅读 · 0 评论 -
the old Video Renderer, the Overlay Mixer, the VMR-7 and the VMR-9 区别!
VMR (Video Mixing Renderer) <br /><br />In terms of both performance and breadth of features, the Video Mixing Renderer (VMR) filter represents the next generation in video rendering on the Windows platform. The VMR replaces the Overlay Mixer and Video Ren转载 2011-05-12 19:33:00 · 1994 阅读 · 0 评论 -
openGL 显卡YUV转RGB(转)
/* * Very simple example of how to perform YUV->RGB (YCrCb->RGB) * conversion with an OpenGL fragmen shader. The data (not included) * is presumed to be three files with Y, U and V samples for a 720x576 * pixels large image. * * Note! The examp转载 2011-05-12 13:30:00 · 4269 阅读 · 0 评论 -
Driectx D2D不支持YUV,必须转换成RGB32才能显示
<br /> 最近一直在想办法解决直接显示YUV的问题,比如说Vc中显示YUV,看了DirectX9.0 10.0等文档,发现它不支持显示YUV,但是通过cpu将YUV转换成RGB32,速度很慢,而且cpu占用率高,但是有一种好的办法,就是采用intel的ipp或者FFMPEG库的swscale(<br />swscale from the FFMPEG library.),这种方法降低cpu占用率,提高性能。<br /> Color space conversion<br />Most vid原创 2011-05-13 15:29:00 · 3920 阅读 · 0 评论 -
VLC中的directx.c文件,YUV->RGB硬件加速
<br />*****************************************************************************<br /> * directx.c: Windows DirectDraw video output<br /> *****************************************************************************<br /> * Copyright (C) 2001-2009 the V原创 2011-05-13 18:05:00 · 4860 阅读 · 1 评论 -
使用D3D渲染YUV视频数据
<br /> 在PC机上,对于YUV格式的视频如YV12,YUY2等的显示方法,一般是采用DIRECTDRAW,使用显卡的OVERLAY表面显示。OVERLAY技术主要是为了解决在PC上播放VCD而在显卡上实现的一个基于硬件的技术。OVERLAY的出现,很好的解决了在PC上播放VCD所遇到的困难。早期PC处理能力有限,播放VCD时,不但要做视频解码工作,还需要做YUV到RGB的颜色空间转换,软件实现非常耗费资源,于是,YUV OVERLAY表面出现了,颜色空间转换被转移到显卡上去实现,显卡做这些工作是具有天转载 2011-05-12 17:54:00 · 1590 阅读 · 0 评论 -
两个小时学会DirectDraw编程 (转)
<br />这并非哗众取宠, 通常学习一种电脑技术有两种方法. 一种是自己摸索, 在错误的方向上一错再错, 屡战屡败, 不过最后得道成功. 另一种是有人 或好的材料指导, 因而事半功倍, 在正确的方向上走了速成的捷径. 就象KFC 的鸡一样. 第一种学法能学出电脑天才, 因为所谓电脑高手, 其实就是排错试错的高手. 而第二种则出电脑专才. 这个两小时(?)的学习, 不能使你深入的掌握DD, 不过可以给你编制DD的框架. 能给你 一个起始点, 这个教程就算成功了. <br /><br />DirectDraw转载 2011-05-12 15:05:00 · 989 阅读 · 0 评论 -
Implementing Overlay Flipping in a DirectDraw Driver
<br />该文转自msdn<br />http://msdn.microsoft.com/en-us/library/ee483170(v=winembedded.60).aspx<br /> <br />The DirectDraw API provides support for both surface flipping and for overlay surfaces. Applications can combine these two capabilities within DirectDra原创 2011-05-25 20:21:00 · 1291 阅读 · 0 评论 -
directdraw overlay 和flip及blt的区别
<br />该文转自:<br />http://hi.baidu.com/coolzdp/blog/item/0b4fcc1b08fda8fdae5133f7.html<br />(1)为什么需要overlay:<br />为什么需要overlay? overlay产生的原因是:1,避免在vertical blank时flip/blt surface造成的画面"撕 裂"现象; 2,使硬件可以窗口模式下使用flip而不是blt,从而提高效率. 3D游戏里面它没有什么用的上的地方, 因为一般硬件不支持 rend转载 2011-05-26 09:31:00 · 3920 阅读 · 0 评论 -
使用 8 位 YUV 格式的视频呈现
<br />http://www.microsoft.com/china/MSDN/library/enterprisedevelopment/softwaredev/VideoRende8BitYUV.mspx?mfr=true<br /> <br /> <br />该文转自msdn<br />原创 2011-05-24 20:02:00 · 1089 阅读 · 0 评论 -
关于RGB、YUY2、YUYV、YVYU、UYVY、AYUV
DirectShow中常见的RGB/YUV格式<br /><br />文章来源:http://hqtech.nease.net<br />原文作者: 陆其明<br /><br />小知识:RGB与YUV----摘自《DirectShow实务精选》 作者:陆其明<br /><br />计 算机彩色显示器显示色彩的原理与彩色电视机一样,都是采用R(Red)、G(Green)、B(Blue)相加混色的原理:通过发射出三种不同强度的电子 束,使屏幕内侧覆盖的红、绿、蓝磷光材料发光而产生色彩。这种色彩的表示方法称为R转载 2011-05-10 09:37:00 · 1324 阅读 · 0 评论