opencv
moses1994
Ghent CS 博士在读
展开
-
Opencv 随笔记
记录使用Opencv过程中遇到的问题(不定时更新)。目录1、安装opencv、cv22、libSM.so.6: cannot open shared object file: No such file or directory3、使用cv2.imwrite保存的图像是全黑的1、安装opencv、cv2pip install opencv-python2、libSM.so.6: cannot open shared object file: No such file or dir原创 2020-07-12 17:57:50 · 146 阅读 · 0 评论 -
ImportError: No module named 'PIL'
环境: anaconda3 + Ubuntu 16.04 + Python3.6 + TensorFlow 1.3 + keras 2.1.3原因:缺少 pillow解决方案:pip install --user Pillow因为是在Ubuntu 服务器 多用户环境下,所以加 ‘--user’ ,安装在自己用户目录下,防止污染别人的环境,被人打。。。...原创 2018-10-03 20:41:02 · 4398 阅读 · 1 评论 -
ImportError: No module named cv2
环境: anaconda3 + Ubuntu 16.04 + Python3.6 + TensorFlow 1.3 + keras 2.1.3解决方案:1)网上大多数是复制方案,操作起来太繁琐,放弃;2)源码编译安装,同样繁琐,放弃;3)pip install --user opencv-python采用第三种方案,方便快捷。又因为是在Ubuntu 服务器 多用户环境下,所...原创 2018-10-03 20:36:58 · 574 阅读 · 0 评论 -
OpenCv Kmeans算法及实现
Kmeans算法:基于划分的聚类方法,适用于数据预处理,但图像分割的消耗的时间太长并且效果不怎么好。基本思想:以空间中K个点为中心进行聚类,对最靠近他们的对象归类。通过迭代,逐次更新各聚类中心的值,直到得到最好的聚类结果。算法描述:1、适当选择C个类的初始中心;2、在第K次迭代中,对任意一个样本,求其到C个中心的距离,将该样本归到距离最短的中心所在的类;3、利用均值等方法更原创 2015-04-23 11:42:42 · 1009 阅读 · 0 评论 -
OpenCV设置感兴趣区域ROI,对图像进行局部处理
今天终于将霍夫检测的源码用C++写出来了,八天时间遇到最多的问题还是数据结构不熟悉,有些问题不知道怎么问,不知道从何下手写出来的检测直线基本符合要求,问题是如果在现实中检测铁轨的话,附近会有石子,测试中发现如果石子的数目少,则检测效果较好,如果石子多,那么石子构成的点将影响检测现在想到的一种方法就是设置感兴趣区域,将石子的影响减少源码如下:1、Iplimage设置感兴趣区域原创 2015-05-17 18:29:27 · 12188 阅读 · 0 评论 -
VC++6.0配置opencv 1.0,四个小时的代价
本来一直在ubuntu 的QT中opencv2.4.9,今天下午在VC++6.0下装opencv1.0.如果是1.0以上的版本就得用VS,可VS既大又臃肿,是在不想装,就选择了VC++6.0,绿色版仅32M,小巧易用。遗憾的是VC6.0只能用OpenCV1.0版本。所以先装好VC6.0,再装OpenCV1.0,然后配置,步骤如下: 1、从http://www.opencv.原创 2015-05-07 22:13:40 · 752 阅读 · 0 评论 -
opencv:'BYTE' was not declared in this scope
今天在改进霍夫算法时遇到的问题:对一张图片不用opencv自带的霍夫函数,自己改写时用的是位图,但遇到一个问题。这是原图:IplImage *src = cvLoadImage("123.jpg", 0);IplImage格式的后面的数组处理时用的是 BYTE *pImg//pImg ----待检测图片指针 问题是C++中有byte类型吗(显然是没有),Qt中定义的类型也没有b原创 2015-05-06 22:29:37 · 3758 阅读 · 0 评论 -
图像的depth与nChannels
无论是读入还是读出图像时,都要对图像的类型,位数,以及通道数进行相关的设置灰度图的通道数为1,彩色图的通道为3一个像素点,如果是灰度,那么只需要一个数值来描述它,就是单通道。 如果一个像素点,有RGB三种颜色来描述它,就是三通道。(ollydbg23)typedef struct _IplImage { int nSize; /* Ip原创 2015-05-16 16:08:12 · 2473 阅读 · 0 评论 -
error: overloaded function with no contextual type information
今天改进opencv的霍夫变换时遇到的error: overloaded function with no contextual type information查了之后才发现是自己定义了一个int max=0;和opencv自带的函数max重名了,所以才会报错:错误:没有上下文类型信息的重载函数还有几个:1. error: refere原创 2015-05-08 12:45:12 · 8064 阅读 · 0 评论 -
C++动态二维数组内存的分配和释放 opencv
二维数组动态数组分配和释放首先,数组指针和指针数组的区别:指针数组:array of pointers,即用于存储指针的数组,也就是数组元素都是指针,指针的数组数组指针:a pointer to an array,即指向数组的指针,数组的指针用法的区别:int* a[4] 指针数组 指针的数组 表示:数组a中的元素都为int型指针原创 2015-05-08 11:58:32 · 3605 阅读 · 0 评论 -
QT:缩放图片使之合适显示在指定的label内
之前拍摄的铁轨照片,用QT+opencv处理时发现太大,约四五M左右,4000*4000左右,显示在屏幕上只能显示一部分。我用的方法是先读取照片的长宽,然后乘以scale-----一比例因子,再显示在指定的label内,但这样只是为了显示,缩放之后的图片会失真。用的过程中发现QT 的一个label之内约500KB的图片,640*480显示起来会比较好,所以我选用的scale=0.1,相当于原创 2015-04-09 22:43:15 · 4611 阅读 · 0 评论 -
Sobel算子原理及OpenCv实现
索贝尔算子(Sobeloperator)主要用于获得数字图像的一阶梯度,常见的应用和物理意义是边缘检测。在技术上,它是一个离散的一阶差分算子,用来计算图像亮度函数的一阶梯度之近似值,用来运算图像亮度函数的灰度值近似值。在图像的任何一点使用此算子,将会产生该点对应的梯度矢量或是其法矢量。一、Sobel边缘检测算子在讨论边缘算子之前,首先给出一些术语的定转载 2015-04-23 10:07:09 · 7291 阅读 · 0 评论 -
OpenCv中用hough变换检测直线,有图有真相
版本:OpenCv 2.4.9 + Qt 4.8.5 使用OpenCV的以下函数 HoughLines 和 HoughLinesP 来检测图像中的直线. 原理说明: 霍夫线变换: 霍夫线变换是一种用来寻找直线的方法.是用霍夫线变换之前, 首先要对图像进行边缘检测的处理,也即霍夫线变换的直接输入只能是边缘二值图像. 算法原理:众所周知, 一条直线在图像二维空原创 2015-04-06 14:33:06 · 6259 阅读 · 0 评论 -
linux ubuntu 14.04下配置OpenCV 2.4.9
感谢:http://www.cnblogs.com/shazi909/p/4132198.html:“网上使用Ubuntu12.04来装OpenCv还是挺多的,各种版本组合教程,都没能把Ubuntu12.04+OpenCv2.4.10 成功合体。”然后“建议不要用2.4.10,使用2.4.9就可以了。”现在用14.04+2.4.9.Ubuntu系统版本:Ubuntu Kylin 14.原创 2015-04-01 10:29:39 · 893 阅读 · 0 评论