自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 资源 (1)
  • 收藏
  • 关注

原创 Ubuntu系统OpenCV推理服务器配置记录

记录在配置OpenCV推理的算法服务器的各种环境和库遇到的问题和解决方案

2024-03-14 13:46:03 462 1

原创 PPOCRv3检测模型和识别模型的训练和推理

PPOCRv3的训练和推理

2023-12-07 11:21:09 1111 2

原创 YOLOv5训练和推理

yolo系列之yolov5学习

2023-12-05 14:47:52 991

原创 macOS下编译opencv-4.5.2+opencv_contrib-framework

本博主前后编译了OpenCV的各种版本,感兴趣的可以浏览之前的博文。此篇为iOS编译opencv-framework,官网发布的opencv-4.x-ios-framework.zip不包括opencv_contrib模块,如果不需要里面的功能,则可以直接使用官方版。说明本文使用的系统和软件版本以及工作目录都是本博真实环境,仅供参考。...

2022-07-28 16:07:24 1654 1

原创 win10编译OpenCV4Android系列2-编译OpenCV4.5.2+opencv_contrib

本文是系列文章2,最终目标是使用jni封装so,在Android上直接调用OpenCV的微信二维码解码接口。

2022-02-28 13:00:30 6686

原创 win10编译OpenCV4Android系列1-Android编译环境搭建

win10编译OpenCV4Android系列1-Android编译环境搭建前言一、配置JDK1.下载JDK2.安装JDK二、配置AndroidSDKTools1.下载AndroidSDKTools2.安装AndroidSDKTools三、配置ANT1.下载ANT2.解压并配置环境变量四、下载NDK总结前言本文是系列文章1,最终目标是使用jni封装so,在Android上直接调用OpenCV的微信二维码解码接口。安装环境如下:1,jdk-8u321-windows-x64.exe2,androi

2022-02-25 11:44:50 630

原创 win10下编译OpenCV的微信二维码库给Dotnet使用

文章目录前言一、编译OpenCV和opencv_contrib二、制作Dotnet可以调用的dll第一步:创建C++空项目并添加一个类第二步:配置OpenCV环境第三步:将C++代码编译成dll三、使用Dotnet验证总结前言Dotnet使用OpenCV库有两种方式:一是使用opencvsharp,目前已经支持到OpenCV4.5.3。二是使用C++编译源码,生成托管或者非托管的dll,给Dotnet使用。推荐方式一的OpenCVSharp,可以直接使用,但是他发布的版本默认设置BUILD_op

2021-12-21 13:49:35 4086 6

原创 YOLOX推理系列4-使用YOLOX训练自己的数据集

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码

2021-12-08 10:28:35 9709

原创 YOLOX推理系列3-支持NVIDIA-GPU的OpenCV编译

文章目录系统环境一、配置环境二、下载OpenCV包三、编译OpenCV1,构建CMake2,遇到的问题3,安装并配置坏境4,验证四、测试代码系统环境系统环境如下,如果没有安装驱动或者CUDA,可以参考本系列文章1和2。1,Ubuntu 18.042,GeForce RTX 30803,Driver Version 495.444,CUDA 11.55,cuDNN 8.3.0一、配置环境安装可能需要的包sudo apt-get updatesudo apt-get upgrades

2021-12-03 15:28:17 3030

原创 YOLOX推理系列2-Ubuntu18.04下安装CUDA和cuDNN

文章目录前言一、安装CUDA1.查看显卡驱动支持的CUDA版本2.官网下载3.安装过程4.设置环境变量5.验证CUDA二、安装cudnn1.下载cudnn包2.安装cudnn3.查看cudnn版本总结前言深度学习系列文章之安装CUDA和cudnn。一、安装CUDA首先明确的一点是,我们安装的CUDA版本必须与使用的软件版本相匹配。比如,使用pytorch训练模型,在安装好pytorch后,需要查看当前pytorch对应的CUDA和cudnn版本,通常训练模型都是在conda等虚拟环境中安装,我的

2021-12-02 16:14:17 1069

原创 YOLOX推理系列1-Ubuntu18.04安装显卡驱动

文章目录一、查看显卡型号二、安装显卡驱动1.查看适合本机的显卡驱动版本2.安装推荐版本三、禁用 nouveau1.查看 nouveau信息2.禁用 nouveau四、Nouveau是什么一、查看显卡型号如果自己不知道或者不确定自己显卡型号lspci | grep -i vga会得到一个数字代码,我的返回2206打开The PCI ID Repository,输入2206我的显卡型号是GeForce RTX 3080查看显卡型号,是为了从NVIDIA官方网站下载自己需要的显卡版本,而本

2021-12-02 12:05:19 772

原创 微信二维码识别研究

微信二维码识别研究文章目录微信二维码识别研究前言一、在Win10下编译OpenCV4.5.2(含opencv_contrib)二、调试步骤1.链接OpenCV2.编写Demo3.为Demo配置环境(Debug环境)4.修改OpenCV源码三、微信二维码解码流程,浅见1.二维码定位2.二维码解码前言由于工作原因,需要熟悉二维码解析流程,正好微信在Opencv4.5.2中开源了wechat_qrcode源码,现对第一阶段调研做下记录。提示:以下是本篇文章正文内容,下面案例可供参考一、在Win1

2021-10-13 11:37:15 3039 14

原创 Ubuntu18.04安装FFmpeg4.4

Ubuntu16.04,最新FFmpeg(git)支持库的安装sudo apt-get install -y autoconf automake build-essential git libass-dev libfreetype6-dev libsdl2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libx...

2020-02-11 16:53:33 533

翻译 笔记-调试技巧

控制台打印字符串#define GRS_USEPRINTF() TCHAR pBuf[1024] = {}#define GRS_PRINTF(...) \ StringCchPrintf(pBuf,1024,__VA_ARGS__);\ WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE),pBuf,lstrlen(pBuf),NULL,NULL);...

2019-03-09 21:18:58 115

原创 设计模式心得

Decorator模式装饰模式的作用是动态的给一个对象添加一些额外的职责,采用组合的方式,比继承更灵活。 - 可以变通的添加或减少Component和Decorator类 - 新添加的额外职责仅仅为了满足特定情况才会执行的特殊行为 - 每个装饰功能都放在一个单独的类中,此类包装装饰的对象 - 客户可以有选择的、按顺序地使用这些装饰功能包装对象Composite模式组合模...

2018-04-12 10:15:20 248

原创 iOS 真机 仿真内存告警

NSString *selName = @"_performMemoryWarning"; SEL sel = NSSelectorFromString(selName); if (sel && [[UIApplication sharedApplication]respondsToSelector:sel]) { IMP methodImp = class_getMet

2017-04-25 20:42:46 246

原创 OC内存管理者

有关Objective-C内存管理的方法,实际上不包括在该语言中,而是包含在Cocoa框架中用户OS X、iOS应用开发。 Cocoa框架中Foundation框架类库的NSObject类担负内存管理的职责。 Objective-C内存管理中的alloc/retain/release/dealloc方法分别指代NSObject类的alloc类方法、retain实例方法、release

2017-03-11 09:38:00 201

转载 导航栏透明渐变

1,导航栏透明[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault]; self.navigationController.navigationB

2016-06-12 11:40:38 431

翻译 越狱包ipa制作

1,Edit Scheme中Build Configuration选择Release 2,选择真机,编译出app格式包 3,新建一个payload文件夹,把app包放入,压缩 4,修改后缀名为ipa 或者把app格式包拖入itunes中的应用程序即可

2016-04-26 14:47:45 816

翻译 音频后台播放

1,开启后台任务,让程序保持运行- (void)applicationDidEnterBackground:(UIApplication *)application{ [application beginBackgroundTaskWithExpirationHandler:nil];}2,在info.plist添加Required background modes,为其添加App pl

2016-04-19 17:30:06 755

转载 去掉导航条线

- (UIImageView *)findHairlineImageViewUnder:(UIView *)view{ if ([view isKindOfClass:UIImageView.class] && view.bounds.size.height <= 1.0) { return (UIImageView *)view; } for (U

2016-01-29 15:32:07 551

转载 View的完整显示过程

1,view.layer会准备一个Layer Graphics Context(图层类型的上下文) 2,调用view.layer.delegate(view)的drawLayer:inContext:,并传入刚才准备好的上下文 3,view的drawLayer:inContext:方法内部又会调用view的drawRect:方法 4,view就可以再drawRect:方法中实现绘图代码,所有东

2015-10-26 10:07:37 377

原创 计算有效时间段

int clipLength = [self.clipsSlider currentValue]; double videoClipEnd = _videoClipBegin + clipLength; //计算真实剪辑时间段 double endTemp = 0; double period = 0; double extra = 0; NSArray

2015-10-13 09:53:28 721

转载 程序启动的完整过程

1.main函数2.UIApplicationMain * 创建UIApplication对象 * 创建UIApplication的delegate对象3.delegate对象开始处理(监听)系统事件(没有storyboard) * 程序启动完毕的时候, 就会调用代理的application:didFinishLaunchingWithOptions:方法 * 在application:di

2015-10-08 10:15:50 327

转载 监听键盘通知

// 2.监听键盘的通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillChangeFrame:) name:UIKeyboardWillChangeFrameNotification object:nil];/** * 当键盘改变了frame(位置和尺寸)的时候

2015-09-30 15:17:55 294

转载 加载plist到模型数组

@property (nonatomic, strong) NSArray *heros;- (NSArray *)heros{ if (_heros == nil) { // 初始化 // 1.获得plist的全路径 NSString *path = [[NSBundle mainBundle] pathForResource:@"hero

2015-09-30 10:34:55 338

转载 加载xib的两种方法

Xib文件的加载 方法1 NSArray *objs = [[NSBundle mainBundle] loadNibNamed:@”AppView” owner:nil options:nil]; 这个方法会创建xib中的所有对象,并且将对象按顺序放到objs数组中方法2 bundle参数可以为nil,默认就是main bundle UINib *nib = [UINib nibWith

2015-09-29 10:20:32 476

转载 日期操作

1,比较日期NSTimeInterval secondes = 24 * 60 * 60; NSDate * now = [NSDate date]; //模拟昨天 24 * 60 * 60 NSDate * yesDay = [now addTimeInterval:-secondes]; //比较两个日期是否相同 BOOL

2015-09-25 17:20:49 308

转载 文件管理

NSFileManager * fileManager = [NSFileManager defaultManager]; NSString * path = @"/Users/frankhou/Desktop/5195C73719227F8E93D17E77EE24746B.jpg"; NSError * error; NSDictionary *

2015-09-25 16:49:41 270

转载 NSArray排序

//1.使用sortedArrayUsingSelector //也是最简单的排序方式 //数组是按照你存入元素的顺序存储的 NSArray * array = @[@"b",@"d",@"a",@"z"]; NSLog(@"排序前 array %@",array); array = [array sortedArrayUsingSelecto

2015-09-25 15:55:18 323

转载 @property

1.生成get与set方法的声明 2.生成get与set方法的简单实现 3.如果没有声成名相对应的成员变量,那么他会自动生成一个_开头的成员变量@property 参数分为4类 1.与set方法内存管理相关参数 retain: 要生成符合内存管理原则的set方法(应用与对象类型) assign: 直接赋值,(对象类型,基本数据类型) copy : 2.多线程相关 nonatomic:

2015-09-21 15:57:08 246

转载 iOS笔记-手动内存管理

创建对象 1.分配内存空间,存储对象 2.初始化成员变量 3.反回对象的指针地址1.对象在完成创建的同时,内部会自动创建一个引用计数器,这个计数器,是系统用来判断是否回收对象的唯一依据,当我们的引用计数retainCount = 0的时候,系统会毫不犹豫回收当前对象 2.[对象 release] reatinCount - 1 3.[对象 retain] reatinCount

2015-09-21 15:03:49 271

转载 UITextField长度限制

[textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];- (void)textFieldDidChange:(UITextField *)textField{ if (textField == self.titleField

2015-09-17 14:34:55 269

原创 Quartz2D绘制view

1.新建一个类,继承自UIView 2.实现- (void)drawRect:(CGRect)rect方法,在这个方法中 取得跟当前view相关联的图形上下文 绘制相应的图形内容 利用图形上下文将绘制的所有内容渲染显示到view上面 3.实现drawRect方法的原因是,在drawRect方法中才能取得跟view相关联的图形上下文 4.drawRect方法的调用时间

2015-08-28 14:33:00 248

原创 iOS数据存储的常用方式

一、XML属性列表(plist)归档//1.获取沙盒根路径NSString *home = NSHomeDirectory();//2.document的路径NSString *docPath = [home stringByAppendingPathComponent:@"Documents"];//3.数据存放文件self.filePath = [docPath stringByAppen

2015-08-27 16:56:11 384

原创 TableViewCell的初始化

/** * 如果Cell是通过手写代码创建,会调用这个方法来初始化Cell */- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{ self = [super initWithStyle:style reuseIdentifier

2015-08-27 10:21:33 446

原创 performSegue的执行过程

performSegueWithIdentifier: sender:的执行过程:根据identifier去storyboard中找到对应的线,新建UIStoryboardSegue对象 设置Segue对象的sourceViewController(来源控制器) 新建并且设置Segue对象的destinationViewController(目标控制器)调用sourceViewControl

2015-08-24 10:29:21 845

转载 遍历subviews

NSString *xml = [self digView:self.view];[xml writeToFile:@"/Users/frankhou/Desktop/view.xml" atomically:YES encoding:NSUTF8StringEncoding error:nil];- (NSString *)digView:(UI

2015-08-20 17:14:08 385

原创 iOS开发学习之UIWindow

UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow,iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控制器的view就显示在屏幕上了;一个iOS程序之所以能显示到屏幕上,完全是因为它由UIWindow。 A UIScreen object that identifies a physical screen conn

2015-08-19 16:07:49 365

原创 iOS开发学习之iOS程序启动过程

1.执行main函数 2.UIApplicationMain 创建UIApplication对象 创建UIApplication的delegate对象 3.delegate对象开始处理(监听)系统事件(没有storyboard) 程序启动完毕的时候,就会调用代理的didFinishLaunchingWithOption:方法 在该方法中创建UIWindow

2015-08-19 15:44:49 297

设计模式23之C++实现

GOF一书中23种设计模式以及双分派模式的C++实现,所有实例在vs2013编译通过

2018-05-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除