
OpenCV图像处理
yanzi1225627
南无飒哆喃。三藐三菩陀。俱胝喃。怛侄他。唵。折戾主戾。准提娑婆哈。南无阿弥陀佛。
展开
-
c++ for循环中,如何改变字符串变量里的部分值 使之于i 和j 相同步变化?????(即循环用cvLoadImage的path自动改变)
在工程中,很多时候需要读取文件,而文件名filename或者path是有一定规律的。这就要求当循环时,i发生变化,filename里的一部分也随着变化。在matlab里,要实现这个功能很方便,可以用int2str(i)实现,将整形的i转成字符型。 那么在c或者c++下呢??最初用itoa,但我在linux下用不了这个函数。所以放弃了。看了很多资料,也没有直接回答的。摸索了一天,终于解决。我原创 2012-05-26 16:44:06 · 5480 阅读 · 2 评论 -
Matlab程序 转C++/Opencv 不可不知的17个函数
1、matlab中的imread相当于OpenCV中的cvLoadImage(imageName, CV_LOAD_IAMGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR):读出的图像信息保持了原有图像的信息(包括通道信息和位深信息);rgb2gray相当于cvLoadImage(imageName, CV_LOAD_IMAGE_GRAYSCALE):单通道灰度图;转载 2012-05-10 14:19:39 · 5795 阅读 · 0 评论 -
opencv2.0以后新增C++接口的 Mat矩阵 单行赋值及矩阵合并的问题与实现(苦心研究多天才解决!)
背景:现在有CvMat类型的矩阵n个,每个矩阵都是1*m的行向量,也即每个CvMat代表一个样本的特征向量。现在需要申请一个n*m, 即n行m列的矩阵, 每一行表示一个样本的特征向量,特征向量的维数为m。此问题也就是纠结我多天的矩阵合并问题。 解决方法: CvMat *palm = (CvMat*)cvLoad(path); //得到一个行向量 Mat t原创 2012-06-24 11:20:51 · 12492 阅读 · 5 评论 -
基于Opencv的 矩阵点乘
matlab中的两矩阵点乘 .* 相当于OpenCV中的cvMul函数。void cvMul(const CvArr* src1,const CvArr* src2,CvArr* dst,double scale=1);//两矩阵元素之间的简单乘法原创 2012-05-18 09:28:54 · 9475 阅读 · 1 评论 -
opencv 矩阵与一个常数相乘的 两种实现方法
第一种:参考http://www.opencv.org.cn/index.php/Cxcore%E6%95%B0%E7%BB%84%E6%93%8D%E4%BD%9C#ConvertScale用函数cvConvertScale();void cvConvertScale( const CvArr* src, CvArr* dst, double scale=1, double shift=原创 2012-05-17 10:21:39 · 21102 阅读 · 1 评论 -
OpenCV学习之CvMat的用法详解及实例
目 录 1.初始化矩阵:. 12.IplImage 到cvMat的转换. 13.cvArr(IplImage或者cvMat)转化为cvMat 14.图像直接操作. 25.cvMat的直接操作. 36.间接访问cvMat 47.修改矩阵的形状——cvReshape的操作. 58.计算色彩距离. 7OpenCV学习之CvMat的用法详解及实例转载 2012-05-11 17:12:34 · 22038 阅读 · 0 评论 -
opencv图像处理基本操作
1. 矩阵数据类型通用矩阵数据类型:CV_(S|U|F)C其中,S表示带符号整数;U表示无符号整数;F表示浮点数;例如:CV_8UC1 表示8位无符号单通道矩阵; CV_32FC2 表示32位浮点数双通道矩阵;2. 图像数据类型通用图像数据类型为: IPL_DEPTH_(S|U|F)如:IPL_DEPTH_8U 表示8位无符号整数图像;转载 2012-05-11 11:20:17 · 15371 阅读 · 0 评论 -
Android上掌纹识别第一步:基于OpenCV的6种肤色分割 源码和效果图
六种方法分别是:基于RGB分割,基于RG同道的分割,ycrcb+otsu(ostu可以参考http://blog.csdn.net/onezeros/article/details/6136770,http://wenku.baidu.com/view/05c47e03bed5b9f3f90f1ce4.html),YCrCb空间,YUV空间,HSV空间。下一步就是通过JNI将这些检测移植到an原创 2013-02-21 21:35:10 · 14642 阅读 · 10 评论 -
Android(OpenCV) NDK开发: 0xdeadbaad(code=1)错误 及 关闭armeabi和libnative_camera_r2.2.2.so的生成
一、OpenCV移植到android之后,开发中遇到错误:android fatal signal 11(SIGSEGV) at 0xdeadbaad (code=1).很是纠结,参考https://community.freescale.com/docs/DOC-93378 http://www.linkedin.com/groups/Application-crash-android-40-h原创 2013-03-01 11:08:59 · 8275 阅读 · 15 评论 -
OpenCV2.0以后:Mat类型和CvMat类型的互相转换(附:OpenCV矩阵合并)
原来是只有CvMat的,后来引入了c++的概念,就有个Mat这个类,用法如Mat a, a是一个对象。CvMat *a = cvCreateMat()。使用Mat很多时候都方便很多。但有时又需要二者的转换。1,从Mat到CvMat怎么转?Mat a,CvMat *b = cvCreateMat(..........);CvMat temp = a;cvCopy(&temp, b)就OK了。2,从C原创 2013-04-14 13:38:33 · 19340 阅读 · 1 评论 -
Linux下: Eclipse安装配置OpenCV2.1,用C++调用OpenCV过程 及 测试实例
安装方法,命令:yum install opencv-devel 就可以完成安装。关键在配置Eclipse,让他找到opencv的库,就是g++ test.cpp -o test -I ......................... -l.............................,,一个是include的目录,一个是library的目录。配置方法如下:1,新建一个c++项目,(原创 2012-07-23 11:47:09 · 5106 阅读 · 0 评论 -
Matlab:任意矩阵计算分布密度(海明距离的分布密度)
如何画分布密度?如下图所示:x轴是海明距离,y轴是分布密度。我写一个函数,输入为海明距离hd。function out = YanMiDu(hd)xMin = min(hd);xMax = max(hd);x = linspace(xMin, xMax, 20); %将最大值 最小值区间分成19个小段y = hist(hd,x); %计算各个区间,hd出现的次数y = y/length(hd)原创 2013-05-11 15:55:56 · 8173 阅读 · 0 评论 -
Matlab图像处理:误拒率、误识率意义,计算等错误率的Matlab源码(网络首发)
图像处理中经常有误拒率和误识率两个概念,今天简介下。 误拒率,就是错误拒绝的意思,指的类内匹配。如果有10个志愿者的样本,每个志愿者20幅样本。那么相对于类内测试,比如对1号志愿者,同一类的这20幅图片之间,互相匹配,假设1:1的匹配,互相不重复能够进行(20*19)/2次。如果10个志愿者都进行这么测试,就是10*(20*19)/2次。这是总的类内匹配次数。预设定阈值为TH,如果匹配值t原创 2013-05-11 18:54:40 · 20973 阅读 · 13 评论 -
Matlab图像处理:类内、类间测试的次数控制
现在假设,有10个人的人脸,每个人有10幅人脸样本,一共100幅人脸。类内测试: 如果采用1:1认证的方式,那么类内,也就是同类进行认证测试,每个人最多可以测试(9+8+7...1)=(9*(9+1))/2. 可以这么理解,第一个人脸和后面9个依次认证依次,然后第二个人脸和后面8个依次认证,最后求和。【等差数列的求和:(n*(n+1)*d)/2 】 因为是10个人,所以类内一共可以测试1原创 2013-05-14 20:37:37 · 3546 阅读 · 0 评论 -
Eclipse、Cygwin配置OpenCV2.0 make: *** multiple target patterns错误解决
为了更好的调试OpenCV,需在本地构建一个C++的OpenCV调试环境,本文记录了OpenCV2.0在eclipse上利用Cygwin作编译器的配置方式。重点讲述了“make: *** multiple target patterns. Stop”这个错误的解决方法。原创 2013-11-26 23:24:56 · 17748 阅读 · 1 评论 -
Android JNI调用OpenCV,长时间运行内存异常,导致闪退的log分析和解决---(ReferenceTable overflow (max=1024)造成的)
首先交代下问题背景,前些日子自己在android上搞了个入侵检测玩。就是camera当作监控设备,每隔一定时间检测是否有东西入侵,如果入侵率到一定程度就报警的东西。最近发现,每次运行超过20分钟,app直接挂掉消失。下面附上核心完整log:01-01 21:17:42.321 I/yan ( 2588): /storage/sdcard0/InvadeDetect/ 11111111111原创 2014-01-22 23:40:29 · 14587 阅读 · 10 评论 -
OpenCV4Android开发之旅(一)----OpenCV2.4简介及 app通过Java接口调用OpenCV的示例
本文介绍OpenCV的发展历程,以OpenCV2.4.4为载体演示如何将Android开发和OpenCV通过Java接口进行调用。让数字图像处理和Android APP开发完美融合。原创 2013-11-24 14:35:54 · 80017 阅读 · 61 评论 -
Android开发:安装NDK,移植OpenCV2.3.1,JNI调用OpenCV全过程
开发环境:Fedora14 , 操作中以root权限操作,这年头Android移植上OpenCV就强大了,可以做很多复杂的视频分析、图像处理工作了!如火灾、人脸、视频行为的分析等。欢迎Android爱好者,加群:248217350。备注:yanzi一:NDK的安装 首先是安装NDK,安装之前需要安装CDT,具体的参照http://blog.csdn.net/yanzi1原创 2013-01-21 18:05:55 · 20879 阅读 · 20 评论 -
openCV 矩阵(图像)操作函数---史上最全
有很多函数有mask,代表掩码,如果某位mask是0,那么对应的src的那一位就不计算,mask要和矩阵/ROI/的大小相等 大多数函数支持ROI,如果图像ROI被设置,那么只处理ROI部分 少部分函数支持COI,如果COI设置,只处理感兴趣的通道矩阵逻辑运算 void cvAnd(const CvArr* src1, const CvArr* src2, CvArr* dst,转载 2012-05-10 16:37:44 · 5004 阅读 · 0 评论 -
opencv 旋转图像函数实现 等同于matlab里的rotate() (注:旋转后图像变大,超出部分填为黑色)
注:clockwise=true 顺时针旋转 clockwise=false 逆时针旋转IplImage* rotateImage(IplImage* src, int angle, bool clockwise) { angle = abs(angle) % 180; if (angle > 90) {原创 2012-05-11 17:05:45 · 6835 阅读 · 0 评论 -
基于Opencv的矩阵三角函数封装 cvAtan2Mat cvSinMat cvAtan2Mat功能等于matlab里的atan2 sin cos
Opencv中没有提供对矩阵进行操作的三角函数,我封装了三个,其他三角函数可以仿照此进行封装。 头文件中要包含#include CvMat* cvAtan2Mat(CvMat *a, CvMat *b){ int rows = a->rows; int cols = a->cols; CvMat *out = cvCreateMat(rows,原创 2012-05-16 17:39:23 · 8988 阅读 · 1 评论 -
opencv CvMat矩阵学习
1.初始化矩阵:方式一、逐点赋值式:CvMat* mat = cvCreateMat( 2, 2, CV_64FC1 );cvZero( mat );cvmSet( mat, 0, 0, 1 );cvmSet( mat, 0, 1, 2 );cvmSet( mat, 1, 0, 3 );cvmSet( mat, 2, 2, 4 );cvReleaseMat(转载 2012-05-15 17:32:49 · 2515 阅读 · 0 评论 -
opencv CvScalar解析
一句话:CvScalar就是一个包含四个元素的结构体变量。CvScalar定义可存放1—4个数值的数值,其结构如下。typedef struct CvScalar{ double val[4];}CvScalar;------------------------------------------------CvScalar pt;如果使用的图像是1通道的原创 2012-05-10 21:01:57 · 23573 阅读 · 0 评论 -
Opencv画图函数整理 及 cvCircle cvLine 只能画出黑白两种颜色问题 解决
一句话:用这些画图函数在RGB图上画,则能画出来彩色。 如果您在灰度图上画 则无论怎么设置color都只能画出黑白两种颜色。就这一句话搞了我一个晚上,惭愧!Opencv绘图函数:http://www.opencv.org.cn/index.php/Cxcore%E7%BB%98%E5%9B%BE%E5%87%BD%E6%95%B0原创 2012-05-10 20:57:36 · 16232 阅读 · 2 评论 -
v4l2驱动摄像头 出现错误UINT64_C' was not declared in this scope 解决
编译时报错如下:/usr/include/libavutil/common.h:168: 错误:'UINT64_C' was not declared in this scope解决:在common.h里面添加#ifndef UINT64_C#define UINT64_C(value)__CONCAT(value,ULL)#endif视图如下:原创 2012-05-08 09:10:33 · 5705 阅读 · 2 评论 -
Opencv2.1 移植 arm6410
配置环境: 虚拟机+ubuntu11.10+Cmake 2.8.4参考文章:http://blog.csdn.net/noodies/article/details/5798434http://blog.csdn.net/sun_x_t/article/details/7261944我原本安装的是CMake2.8.2,但找不到这个版本的for linux版本。无奈换成CMake2.原创 2012-04-26 15:09:10 · 3311 阅读 · 0 评论 -
Linux+QT+OpenCv摄像头调试心得(3)---- glibc detected *** free(): invalid pointer: 0xafeff000
摄像头预览正常,在点击“退出按钮”,或者关闭运行窗体后,下面的编译器输出栏弹出一堆警告,如下:*** glibc detected *** /home/yan/qt/Camera_Read_OpenCv_V1-build-desktop-Desktop_Qt_4_8_0_for_GCC__Qt_SDK____/Camera_Read_OpenCv_V1: free(): invalid poi原创 2012-04-12 15:33:48 · 5911 阅读 · 0 评论 -
使用opencv的cvConvertScale让矩阵除以一个常数 结果总为0的 调试心得
正确写法:cvConvertScale(sumPalm, mean, 0.2, 0);错误写法:这里,如果您写成cvConvertScale(sumPalm, mean, 1/5, 0);, 则mean = sumPalm*0+0这里1/5会当成0来处理。 另外,在访问CvMat数据时,比如用cvmGet 和 cvmSet ,矩阵的索引是从0、0开始的。原创 2012-05-28 16:58:49 · 7129 阅读 · 2 评论 -
opencv下如何打印出一个三通道或者二通道矩阵
打印一个3通道矩阵:inline void cv3DoubleMatPrint( const CvMat* mat ){int i, j;for( i = 0; i rows; i++ ){for( j = 0; j cols; j++ ){CvScalar scal = cvGet2D( mat, i, j );printf( "(%f,%f,%f) ", s原创 2012-05-15 17:32:00 · 4165 阅读 · 0 评论 -
OpenCV矩阵操作(二)2010-06-09 19:59OpenCV矩阵操作(二)
OpenCV矩阵操作(二)#include "stdafx.h"/*功能:说明矩阵的一些操作方法*/#include "cv.h"//该头文件包含了#include "cxcore.h"#include "highgui.h"#include void PrintMat(CvMat *A); // 显示矩阵void GenRandn(CvMat *arr,转载 2012-05-10 21:00:07 · 5558 阅读 · 0 评论 -
Opencv 向量的一阶差分函数封装实现 功能等价于Matlab的diff函数 附:显示CvMat的函数封装
最初用opencv的cvNorm函数,发现结果错的一塌糊涂! 多方查找没有cvNorm太多的介绍,后来仔细查阅,从cvNorm等价于Matlab的norm函数出发寻找线索,而显然matlab里norm函数不同与diff函数,无奈自己封装吧。CvMat* DiffMat(CvMat *B) //求向量B的一阶差分 功能等价matlab里的diff{ int cols = B->c原创 2012-05-10 19:59:08 · 4802 阅读 · 0 评论 -
linux下qt中 调用open函数 出现call to '__open_missing_mode' declared with attribute error。。解决
调用open函数,因为使用open函数的时候,如果在第二个参数中使用了 O_CREAT,就必须添加第三个参数:创建文件时赋予的初始权。解决方案:在调用open函数的那一行的参数里加个“0666”或者“0777”均可!如:redir_handle = open (redir, O_WRONLY | O_TRUNC | O_CREAT)改为:redir_handle = open原创 2012-05-07 21:35:22 · 5873 阅读 · 0 评论 -
opencv2.0 源码安装 for x86 make出现error: 'ptrdiff_t' does not name a type 解决
make的时候出现error: 'ptrdiff_t' does not name a type造成编译错误,具体原因是没有加一个命名空间。具体可以见:http://web.archiveorange.com/archive/v/b6fbFdu0fh9uQC9aVdpF,只要在cxcore.hpp的命名空间地方加入include目录下的cxcore.hpp(一定看准名字,可不是src目录下)的位置原创 2012-05-02 22:14:45 · 6608 阅读 · 2 评论 -
opencv2.0移植完后使用中cxtypes.h出现warning: incompatible implicit declaration of built-in function 'lrint‘解决
前提:opencv已经编译安装好了arm版本。这里指的是在pc机上,arm-linux-gcc test.c -o test ....................出现的一个bug提示如下:In file included from /usr/local/arm/opencv/include/opencv/cxcore.h:70, from t原创 2012-05-02 11:02:35 · 3033 阅读 · 0 评论 -
opencv2.1移植arm 出现找不到libcv.so not found (try using -rpath or -rpath-link) 及大量 undefined reference的解决
先介绍下环境:pc(虚拟机)+ubuntu11.10+qt4.8+arm6410(飞凌的),申明下解决onot found (try using -rpath or -rpath-link)的方法是换成了opencv2.0版本,待我慢慢道来! 自从移植完qt4.8后,就可以移植opencv,因为做视觉处理算法不移植不好搞啊!开始了蛋疼的opencv移植,参见我的救急帖子:http://to原创 2012-04-30 23:04:29 · 13554 阅读 · 19 评论 -
移植OpenCv2.1到arm6410(一)linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结
首先是安装cmake,安装过程详见我的系列帖子:http://bbs.witech.com.cn/viewthread.php?tid=14486&pid=95708&page=2&extra=#pid95708此后,我的问题将都汇总到博客里。下载到的opencv压缩包是.tar.bz2形式,解压命令是tar -xfj 。。。-C 。。。具体请见:Linux下最常用的打包程序就是ta原创 2012-04-26 10:09:21 · 2783 阅读 · 0 评论 -
Linux+QT+OpenCv摄像头调试心得(2)----点击退出关闭窗体,提示“程序异常终止”
今天发现了一个诡异的问题,在main.cpp文件里,如果用MainWidget w;w.show;在点击退出按键关闭窗口时,会出现“程序异常终止”的提示。如果换成MainWidget *w = new MainWidget; w->show; 再次点击退出时,则不会出现这样的警告。 呵呵 很诡异吧!!! 写出来 大家参考、指点。原创 2012-04-12 15:26:53 · 6951 阅读 · 3 评论 -
Linux下使用QT调用opencv读取摄像头视频 调试心得
因为做项目要用这,也是白手起家。今天抽空把心得写下,希望大家多顶哈!最初使用v4l2,但发现工作量太大了,而且自己写的代码不如opencv这么专业!参照http://blog.csdn.net/hsl17/article/details/6925876,及http://www.linuxidc.com/Linux/2011-11/47347.htm等几篇文章,最终将其调试成功。 第一篇原创 2012-04-11 16:35:04 · 15059 阅读 · 0 评论 -
OpenCV 下载驿站(百度云盘下载,同步更新)
鉴于在OpenCV官网下载速度很慢,国内访问也不稳定,本博客将提供百度云盘下载链接,持续更新OpenCV及相关书籍下载,欢迎光临!V3.1opencv-3.1.0.exe(Windows)opencv2.framework.zip(IOS)opencv-3.1.0.zip(Linux/Mac)OpenCV-android-sdk.zip(Android)V3.0.0opencv-3.0.原创 2015-08-14 21:35:09 · 129854 阅读 · 71 评论