09/26
14:15
IT OpenCV

opencv 获取 ROI 时没有 clone 引发的内存泄漏

在图像上获取一个 roi 区域

cv::Mat roi = img(rect);

如果roi没有被及时释放,这个操作会使得 img 也无法被释放,因此会导致内存泄漏。
之前因为贪图节省 clone 这一段小时间而不使用 clone,导致了程序引发内存泄漏,而且这个错误很难被排查到。
保险的用法就是在任何时刻都加上 clone

cv::Mat roi = img(rect).clone();
09/18
14:22
IT

编译 Boost

boost 目录下运行

bootstrap.bat

看到会生成 b2.exe,继续运行
Win32(vs2013)

b2 --with-system --toolset=msvc-12.0 --build-type=complete stage

x64(vs2013)

b2 --with-system --toolset=msvc-12.0 --build-type=complete architecture=x86 address-model=64 stage

则可编译 system 模块, 若想要编译所有模块,可执行
Win32(vs2013)

b2 --t[......]

Read more

05/9
11:54
OpenCV

CentOS 6.5 搭建 Python+OpenCV+dlib+Torch 环境运行 openface

Python+Torch 环境是深度学习的一个框架,最近要用到 openface 所以尝试在 CentOS 下搭建这个环境,以下是搭建流程:
(注:以下命令均是在root用户执行,如果有需要root权限的请手动加上sudo)

1. 安装开发工具

执行命令

yum update
yum groupinstall "Development Tools"

2. 安装 Anaconda

下载地址:https://www.continuum.io/downloads
执行命令

bash Anaconda2-4.0.0-Linux-x86_64.sh[......]

Read more

03/15
15:12
IT OpenCV python

cv2.absdiff(A, B) 和 numpy.abs(A - B) 有什么区别

最近用到 cv2.adsdiff(A, B) 这个函数,功能很简单,就是将两幅图像作差。熟练在 Python 下写 OpenCV 的朋友会知道,我们经常需要用到一些 numpy 的库函数来取代 C++ 下一些矩阵的操作。那么,在处理这个需求的时候,我们很自然而然地想到,我们是不是也可以用 numpy.abs(A - B) 这个函数取代呢。
实际上,如果 OpenCVPython 下有提供和 C++ 下同样的接口,我们最好(或者一定要)选用共同的接口而弃用 numpy 的一些自带的矩阵的运算。原因有两点,第一,方便日后代码向其他平台的移植,第二,保证至少不会出错,因为你调用的 numpy 方法在这里未必是对的。

[......]

Read more

12/12
02:10
IT python

grep 2.0

相对于上个版本增加了过滤目录功能,重写了整个结构.

import re
import os
import argparse

def parseInput():
    parser = argparse.ArgumentParser()
    parser.add_argument("-p", nargs='*')
    parser.add_argument('-f',nargs='*') 
    parser.add_argument('-s',nargs='*')  
    parser.add_argument('-k',nargs=[......]

Read more