随笔分类 -  libyuv

我准备介绍自己的写的一套使用opencv和libyuv实现图像的色彩空间转换,以及resize的模块代码
摘要:环境 vs2019 cmake-gui 1.编译libjpeg 下载libjpeg 1) 解压后, 下载 win32.mak,提取码:qnml ,放在解压目录下 用vs2019打开 在工具中选择命令行 输入 nmake /f makefile.vs setup-v15 2)打开生成的jpeg.sln 阅读全文
posted @ 2021-03-29 19:50 cyssmile 阅读(1749) 评论(0) 推荐(1)
摘要:今天写代码时遇到double free or corruption (!prev)这个错误。 自己写代码,怎么会double free呢,调试了好久都没结果,怎么可能出这样的错误。 吃完饭回来,才发现。 在处理图像数据时使用了memcpy函数, 处理前申请memory是以width申请的,进行mem 阅读全文
posted @ 2020-10-29 19:46 cyssmile 阅读(3093) 评论(0) 推荐(0)
摘要:我实现的思路是所有的格式先转成i420,然后进行crop resize 以及cvt的操作。 Get Fourcc code uint32_t Scaler::GetFOURCC(const Scaler::Buffer *src) { uint32_t fourcc = 0; switch (src 阅读全文
posted @ 2020-10-09 15:57 cyssmile 阅读(1496) 评论(0) 推荐(0)
摘要:libyuv中FourCC定义在video_common.h中。 fourcc是一个32位的无符号的int数,下面这样的宏定义生成。 #ifdef __cplusplus #define FOURCC(a, b, c, d) \ ((static_cast<uint32_t>(a)) | (stat 阅读全文
posted @ 2020-10-09 14:49 cyssmile 阅读(499) 评论(0) 推荐(0)
摘要:直接对nv21的数据进行resize。 这是之前项目组遗留的一段代码改过来的。结果不太好。 void Scaler::Resize_NV(const Buffer *src, Buffer *dst){ // this function have some problem if (src->widt 阅读全文
posted @ 2020-09-24 17:58 cyssmile 阅读(1216) 评论(0) 推荐(0)
摘要:首先自定义定义的结构 class Scaler { struct Buffer { uint32_t width, height; uint8_t *data[3]; uint32_t stride[3]; ColorFormat color; }; enum ColorFormat { YUV_I 阅读全文
posted @ 2020-09-24 17:41 cyssmile 阅读(6529) 评论(0) 推荐(1)
摘要:搭建一个cmake项目,libyuv是否编译成功 测试工程github 整个目录结构 具体做法 创建一个3rdparty文件,里面再创建一个libyuv文件。 在libyuv中创建三个文件bin include lib 在include 将官方的libyuv中的头文件复制过来 将自己编译的libyu 阅读全文
posted @ 2020-09-21 16:22 cyssmile 阅读(1184) 评论(0) 推荐(0)
摘要:ubuntu下编译libyuv 1.官网下载libyuv 2.解压,重命名为libyuv 3.编译 mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX={your install path}/libyuv -DCMAKE_BUILD_TYPE="Rel 阅读全文
posted @ 2020-09-21 15:07 cyssmile 阅读(1762) 评论(0) 推荐(0)