
opencv学习
nancheng911
这个作者很懒,什么都没留下…
展开
-
直线检测 case2
HoughLinesP参数分析void HoughLinesP(InputArray image,OutputArray lines, double rho, double theta, int threshold, double minLineLength=0,double maxLineGap=0 )image为输入图像,要求是单通道,8位图像lines为输出参数,原创 2018-01-05 20:04:00 · 218 阅读 · 0 评论 -
opencv用shi-Tomasi角点检测实现目标追踪
本篇博客主要介绍一下基于shi-tomasi角点检测的追踪算法。应用场景是摄像头固定物体移动的情况下。首先我们来介绍一下角点:特征检测与匹配是Computer Vision 应用总重要的一部分,这需要寻找图像之间的特征建立对应关系。点,也就是图像中的特殊位置,是很常用的一类特征,点的局部特征也可以叫做“关键特征点”(keypoint feature),或“兴趣点”(interest point),...原创 2018-05-15 20:58:23 · 4519 阅读 · 6 评论 -
opencv 利用投影法对图像进行分割
投影法主要思想就是记录每一行或者每一列对应想要的像素的个数,然后根据这些个数判断它是不是边界或者是想要的物体。其中像素的个数就像是一个阈值,最后可以把每一行点的个数画出来便于直观的观察。#include <iostream>#include <opencv2/opencv.hpp>using namespace cv;using namespace std;//竖直...原创 2018-05-21 08:26:27 · 7474 阅读 · 5 评论 -
opencv3 svm
#include<iostream>#include<opencv2/opencv.hpp>#include<opencv2/ml.hpp>#include<fstream>using namespace std;using namespace cv;using namespace ml;int main(int argc, char*...原创 2018-04-19 15:06:13 · 407 阅读 · 0 评论 -
opencv3 ann 人工神经网络使用方法
//创建ANNPtr<ANN_MLP> bp = ANN_MLP::create();// (a) 3层,输入层神经元个数为 4,隐层的为 6,输出层的为 4Mat layers_size = (Mat_<int>(1,3) << 4,6,4);// (b) 4层,输入层神经元个数为 4,第一个隐层的为 6,第二个隐层的为 5,输出层的为 4Mat l...原创 2018-04-13 16:24:12 · 1953 阅读 · 0 评论 -
opencv detectMultiScale函数
void detectMultiScale( const Mat& image, CV_OUT vector<Rect>& objects, double scaleFactor = 1.1, int minNeighbors = 3, int flags = 0, Size minSize = Size(), Size maxSize = Size()...原创 2018-04-04 20:40:22 · 2264 阅读 · 2 评论 -
opencv equalizeHist直方图均衡化
直方图均衡化是一种常见的增强图像对比度的方法,使用该方法可以增强局部图像的对比度,尤其在数据较为相似的图像中作用更加明显。直方图均衡化处理的“中心思想”是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。直方图均衡化就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。直方图均衡化就是把给定图像的直方图分布改变成“均匀”分布直方图分布。有...原创 2018-04-04 20:25:56 · 2968 阅读 · 0 评论 -
opencv学习笔记-split分离和merge合并操作
opencv中split函数和merge函数是一对互逆的操作,split可以把一幅图像各个通道分离开,经过对各个通道单独操作后可以用merge函数合并。若要显示单独一个通道的值要把另外两个通道清0再合并,再显示出单通道图片。split 函数:C++: void split(const Mat& src, Mat*mvbegin);C++: void split(InputArray m,...原创 2018-03-28 09:31:26 · 2893 阅读 · 0 评论 -
opencv中的矩阵运算
一、矩阵Mat I,img,I1,I2,dst,A,B;double k,alpha;Scalar s;1.加法I=I1+I2;//等同add(I1,I2,I);add(I1,I2,dst,mask,dtype);scaleAdd(I1,scale,I2,dst);//dst=scale*I1+I2;2.减法absdiff(I1,I2,I);//I=|I1-I2|;A-B;A-s;s-A;-A;s...转载 2018-03-20 15:38:21 · 1003 阅读 · 0 评论 -
opencv createtrackbar的使用
C++: int createTrackbar(conststring& trackbarname, conststring& winname, int* value, int count, TrackbarCallback onChange=0,void* userdata=0); 第一个参数,const string&类型的trackbarname,表示轨迹条的名...原创 2018-03-03 20:03:35 · 821 阅读 · 0 评论 -
opencv中videocapture用法 打开视频和打开摄像头
#include <opencv2/opencv.hpp>#include <iostream>using namespace std;using namespace cv;int main(int argc, char **argv){ VideoCapture cap; cap.open(0); while (1) { Mat frame;//定...原创 2018-03-01 19:23:44 · 24804 阅读 · 13 评论 -
实验主程序
#include #include #include #include "cvaux.h"#include #include #include "GLCM.h"using namespace std;using namespace cv;Mat src1;Mat draw_image;int numb = 0;//the number in one classifyint原创 2018-01-20 13:29:51 · 205 阅读 · 0 评论 -
case6 计算轮廓面积和周长
moments()作用:计算一个多边形或栅格化形状的多达3阶的所有矩。形式:Moments moments(InputArray array, bool binaryImage=false );参数:array:栅格图像或者二维点列;binaryImage:如果是true:所有非零值图像像素被置1,该参数仅用于图像;moments:输出的矩;原创 2018-01-15 19:15:16 · 394 阅读 · 0 评论 -
case5 opencv中透视变换结合直线检测对图像进行校正
HoughLinesP参数分析void HoughLinesP(InputArray image,OutputArray lines, double rho, double theta, int threshold, double minLineLength=0,double maxLineGap=0 )image为输入图像,要求是单通道,8位图像lines为输出参数,4个元素表示,即直线的起始和...原创 2018-01-15 09:31:42 · 2464 阅读 · 0 评论 -
切割图片的边缘选取ROI区域
#include #include #include using namespace cv;using namespace std;Mat src, gray_src, dst;int threshold_value = 100;int max_level = 255;const char* output_win = "Contours Result转载 2018-01-05 20:01:52 · 1272 阅读 · 0 评论 -
case 4 计数
资料地址:http://docs.opencv.org/3.0.0/d4/d11/distrans_8cpp-example.html首先这个示例,主要讲述了distanceTransform函数的使用。distanceTransform函数用于计算二值图像中所有像素力其最近的值为0像素的近似距离。这个函数非常有用,可以用于细化轮廓或者寻找物体质心。(1)二值化原创 2018-01-13 10:55:24 · 322 阅读 · 0 评论 -
case3 利用面积和横纵比进行轮廓筛选
#include#includeusing namespace cv;using namespace std;Mat src, dst;int main(int argc, char** argv){ src = imread("E:/picture/case3.jpg", IMREAD_GRAYSCALE); imshow("Input image", src); //xing原创 2018-01-12 20:45:43 · 381 阅读 · 0 评论 -
opencv python 采用摄像头拍照
因为最近需要做个相机标定,所以要先用摄像头拍一下标定的照片。按下s键就会保存照片到指定文件夹按下esc就会退出程序import cv2cap=cv2.VideoCapture(0)i=0while(1): ret ,frame = cap.read() k=cv2.waitKey(1) if k==27: break elif ...原创 2018-07-26 18:38:33 · 31194 阅读 · 24 评论