OSX 10.8.4
06 Jun 2013自从昨晚升级了10.8.4,我的电脑断网问题解决了,头不疼,脚不痛了
话说升级前基本上是一天断网千百遍啊,直到现在我还怀疑是公司的无线好了,原来是我系统升级了。
自从昨晚升级了10.8.4,我的电脑断网问题解决了,头不疼,脚不痛了
话说升级前基本上是一天断网千百遍啊,直到现在我还怀疑是公司的无线好了,原来是我系统升级了。
OpenCV是一个开源的计算机视觉库,具有模块化。
table(table table-bordered). |_.模块|_.说明| |core|核心模块,包括基本的数据结构,例如cv::Mat。| |imgproc|图像处理模块,包括图像过滤、图像转换、颜色空间转换和直方图等。| |video|视频分析模块,包括运行估计、背景减法和对象跟踪算法等。| |calib3d|基本的多视图几何算法、单一和立体摄像机标定、 对象的姿势估计、 立体声函授算法和元素的三维重建。| |features2d|特征探测器| |objdetect|对象检测,可做人脸识别、汽车识别等对象识别功能。| |highgui|用户界面接口。| |gpu|GPU加速算法。|所有的OpenCV类和函数都放在cv命名空间中,因此要使用OpenCV中的类或函数需要使用cv命名空间来访问。
cv::Mat A;
如果与stl或其它库的名称冲突则需要显式命名空间来访问。
cv::log(1) std::log(1)
OpenCV自动处理所有内存
OpenCV通过引用计数的方式来进行内存自动管理
Mat A(1000, 1000, CV_64F); // 创建一个新的Mat对象 Mat B = A; // B引用A Mat C = B.clone(); // 克隆B赋给C,此时C是一个新对象,操作不会影响到A Mat D; C.copyTo(D); // 拷贝C给D,此时D是一个新的对象,操作不会影响到C
OpenCV 自动释放内存,以及自动分配的内存为输出函数参数的大部分时间。
cv::uchar是8位无符号整数类型
多通道也可以使用CV_MAKETYPE函数来创建,例如 @CV_MAKETYPE(CV_8U, n)@
Mat mtx(3, 3, CV_32F); // 创建3x3浮点矩阵 Mat cmtx(10, 1, CV_64FC2); // 创建10x1双通道浮点矩阵,10元素复杂向量 Mat img(Size(1920, 1080), CV_8UC3); // 创建1920列,1080行的3通道颜色的图像 Mat grayscale(image.size(), CV_MAKETYPE(image.depth(), 1)); // 创建与image同大小,同通道类型的单通道图像
人脸识别算法能适用于8位灰度图像或彩色图像
try { ... // call OpenCV } catch( cv::Exception& e ) { const char* err_msg = e.what(); std::cout << "exception caught: " << err_msg << std::endl; }
OpenCV直接在多线程中访问同一个Mat对象,通过引用计数的方式,达到内存共享。
参考: http://docs.opencv.org/modules/core/doc/intro.html
DisplayImage.cpp
#include#include <opencv2/opencv.hpp> using namespace cv; int main( int argc, char** argv ) { Mat image; image = imread( argv[1], 1 ); if( argc != 2 || !image.data ) { printf( "No image data \n" ); return -1; } namedWindow( "Display Image", CV_WINDOW_AUTOSIZE ); imshow( "Display Image", image ); waitKey(0); return 0; } </pre> CMakeLists.txt
cmake_minimum_required(VERSION 2.8) project( DisplayImage ) find_package( OpenCV REQUIRED ) add_executable( DisplayImage DisplayImage.cpp ) target_link_libraries( DisplayImage ${OpenCV_LIBS} )$ mkdir build $ cd build $ cmake .. $ DisplayImage ~/test.png</section>
通过homebrew安装opencv
$ brew tap homebrew/science $ brew install opencv
配置vim自动补全与查看源码,只有头文件
$ /usr/local/bin/ctags -R --c++-kinds=+p --fields=+iaS --extra=+q \ /usr/local/include/opencv $ mv tags ~/.vim/tags/opencv $ /usr/local/bin/ctags -R --c++-kinds=+p --fields=+iaS --extra=+q \ /usr/local/include/opencv2 $ mv tags ~/.vim/tags/opencv2 $ vim ~/.vimrc set tags+=~/.vim/tags/opencv set tags+=~/.vim/tags/opencv2
今天调整了一个工程名称与配置文件,发现无法启动应用了,出现 error: failed to attach to process ID 0 这个问题,最后在
http://stackoverflow.com/questions/12741188/error-failed-to-attach-to-process-id-0
中解决了,关键步骤是
1. 退出 xcode 2. 进入 ~/Library/Application Support/iPhone Simulator/6.1/Applications 删除里面所有目录 3. 进入 ~/Library/Developer/Xcode/DerivedData 删除里面所有目录 4. 启动 xcode,并清理工程,重新编译