- 博客(8)
- 收藏
- 关注
原创 完美解决OpenCV Mat 与 FFmpeg AVFrame 的相互转换 (任意尺寸)
在 av_frame_get_buffer() 后,要比较一下实际分配的存储空间 linesize[0] 是否和原宽度 width 一致,不一致则说明每行的数据并非 width 那么长,而是做了填充,通常是 16 或 64 的整数倍。便在原来帖子的基础上改了一下,主要就是在 cv::Mat 转 AVFrame 时,考虑是否需要内存对齐的问题。然而对于尺寸不是 64 的倍数 时,还是会出现底部绿屏的效果,猜测应该是数据丢失或者数据对齐的问题。根据新的内存空间将 cv::Mat 中数据正确拷贝即可。
2024-02-07 18:16:11
584
1
原创 [数据结构]代码:二叉树的基本操作
首先定义节点:template <class T>struct TreeNode{ T val; TreeNode<T>* parent; TreeNode<T>* left; TreeNode<T>* right; TreeNode() : val(0), parent(nullptr), left(nullptr), right(nullptr) {} TreeNode(T val) : val(val), parent(nullpt
2022-01-30 12:23:49
1311
原创 [算法]冒泡排序和插入排序
前言排序是作为数据处理时最常用到的算法,也是基础算法的最基本的操作。常见的排序操作分为:插入排序、冒泡排序、选择排序、归并排序、快速排序、计数排序以及基数排序。本篇博客介绍插入排序的思想和实现。理论部分插入排序,顾名思义,重点在于插入操作。其排序的方法就像我们在玩扑克牌时进行捋牌的操作。当我们面前有固定数量的牌时,我们会取出一张牌,把它拿到手里,然后继续抽牌,把它放到手上正确的位置,即插入到正确的位置。但随机选择一张牌然后对剩余的牌进行操作...
2022-01-27 22:54:22
1515
原创 [数据结构]代码:单链表的定义和基本操作
简单写了一些基本操作,希望大佬们能指正。#include <iostream>using namespace std;template <class T>struct ListNode { T data; ListNode<T>* next; ListNode() : data(0), next(nullptr) {} ListNode(T val) : data(val), next(nullptr) {} ListNode(T val, Li
2022-01-27 19:20:28
550
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人