关闭
当前搜索:

opencv之8.3检测FAST特征

代码:#include #include using namespace std; using namespace cv;int main() { Mat image = imread("D:/house.jpg", 0); vector keypoints; //cv::FastFeatur...
阅读(20) 评论(0)

opencv之8.2检测Harrris角点

Harris角点检测: void cornerHarris(InputArray src, OutputArray dst, int blockSize, int ksize, double k, int borderType=BORDER_DEFAULT) 参数详解: src image输入图像。 dst harris_responce 存储哈里斯(Harris)检测responces的图...
阅读(21) 评论(0)

opencv之7.6计算联通区域的形状描述

包围盒:水平放置的最小包围矩形。 Rect boundingRect( InputArray points ) 最小包围圈: void minEnclosingCircle( InputArray points, CV_OUT Point2f& center, CV_OUT float& radius ); 多边形...
阅读(28) 评论(0)

opencv之7.5提取联通区域的轮廓

提取白色区域的轮廓void findContours( InputOutputArray image, OutputArrayOfArrays contours, int mode, int method, Point offset = Point()); 第一个参数:image但更常用的是二值图像,一般是经过Canny、拉普拉斯等边缘检测...
阅读(62) 评论(0)

opencv之7.4用直线拟合一组点

获取直线的位置和方向的精确估计,解决直线拟合的问题。 思想: 用HoughlinesP检测直线,将直线保存在lines中,获取Canny图像并获取lines与canny图相交的点集,再用点集拟合直线。 代码:#include #include #include <open...
阅读(23) 评论(0)

opencv之7.3霍夫变换

霍夫变换可以实现任何由参数方程描述的几何体的检测。 1.检测直线 原理:霍夫变换基于二值图像,寻找经过每个单独像素点的所有直线,当直线经过足够多的像素点,则这个直线的存在足够明显。 void HoughLines( InputArray image, OutputArray lines, double rho, double theta, int threshold, dou...
阅读(18) 评论(0)

opencv学习之Canny算子

Canny算子(基于sobel) 1.消除噪声。 普通情况下,使用高斯平滑滤波器卷积降噪。 2.计算梯度幅值和方向。 此处,依照Sobel滤波器的步骤。 3.非极大值抑制。 这一步排除非边缘像素, 仅仅保留了一些细线条(候选边缘)。 4.滞后阈值。最后一步,Canny 使用了滞后阈值,滞后阈值须要两个阈值(高阈值和低阈值): Ⅰ.假设某一像素位置的幅值超过 高 阈值, 该像素被保...
阅读(23) 评论(0)

c++学习之类的继承与派生

8.3 类的继承与派生C++语法:定义派生类 class 派生类名 : 继承方式1 基类1, 继承方式2 基类2, ...... // 派生类声明部分 { public : 新增公有成员 protected : 新增保护成员 private : 新增私有成员 } ;各新增函数成员的完整定义 // 派生类实现部分 语法说明:  定义派生类时,在派生类名的后面添加继承列表,在声明部分的大括号里声明...
阅读(20) 评论(0)

c++学习之类的组合、聚合

8.2类的组合 使用组合类定义对象,即组合类对象,其成员中也将包含对象成员和非对象成员 2.访问组合类对象中的非对象成员 组合类对象名 . 非对象成员名 •组合类对象中的对象成员还包含自己的下级成员,也就是说组合类对象包含多级成员。可以访问组合类对象中对象成员的下级成员,这是一种多级访问。多级访问的语法形式是: 组合类对象名 . 对象成员名 . 对象成员的下级成员名 •多级访问将受到多级权限...
阅读(28) 评论(0)

c++学习之类的友元

1.友元函数 C++语法:在类中声明友元函数 class 类名 // 类声明部分{ ...... friend 友元函数的原型声明 ; } ;语法说明:  在类声明部分声明友元函数的原型,声明时使用“friend”关键字。声明语句可以放在大括号内的任意位置,该位置的访问权限与友元函数无关;  友元函数是类外的其它函数,不是类的成员;  友元函数可以在其函数体内访问该类对象...
阅读(24) 评论(0)

c++学习之 类中的常成员与静态成员

1.类中的所有成员都不能在定义时初始化,只能在构造函数时初始化 2.#include using namespace std;class CirclePool // 定义1个圆形水池类CirclePool { private: const double price; // 修改1:声明时使用“const”关键字 double r; // 半径(m) public: // 修改...
阅读(28) 评论(0)

c++学习之对象的应用

1.对象数组-定义Square obj[3] = { Square(1), Square(2),Square(3)}构造:有多少个数组元素,则调用多少次构造函数-访问 对象数组名【下标】.公有成员名cout << obj[n] <<endl;析构:有多少个数组元素,则调用多少次析构函数2.对象的动态分配对象作为函数的形参 -值传递与常对象常对象定义时必须赋初值double InnerCircle...
阅读(27) 评论(0)

第五章 使用形态学滤波对图像进行边缘及角点检测

知识点: 直线检测:原图膨胀-原图腐蚀 角点检测:result1 = 膨胀(十字)+腐蚀(菱形)(对原图进行的连续形态学滤波) result2 = 膨胀(x 型 )+腐蚀(方形)(对原图进行的连续形态学运算) result = abs(result1 - result2) 具体语言叙述: 1.直线检测:计算膨胀后的图像与腐蚀后图像的差值。由于这两个变换的图像不同的地方主要在边缘处,图...
阅读(28) 评论(0)

vs2015常用快捷键总结

1.回到上一个光标位置/前进到下一个光标位置 1)回到上一个光标位置:使用组合键“Ctrl + -”; 2)前进到下一个光标位置:“Ctrl + Shift + - ”。 2.复制/剪切/删除整行代码 1)如果你想复制一整行代码,只需将光标移至该行,再使用组合键“Ctrl+C”来完成复制操作,而无需选择整行。 2)如果你想剪切一整行代码,只需将光标移至该行,再使用组合键“Ctrl+X”来完成剪切操作...
阅读(29) 评论(0)

第五章 使用形态学滤波对图像进行开闭运算

知识点: 1.闭运算:对图像先膨胀,再腐蚀 2.开运算:对图像先腐蚀,再膨胀...
阅读(57) 评论(0)

使用形态学滤波对图像进行腐蚀、膨胀运算

知识点: 1. 形态学理论定义了一系列运算,应用预定义的形状元素来变换一张图像。形状元素与像素相领点相交的方式确定了运算的结果。 2. 结构元素定义为像素的结构(形状),以及一个原点(锚点)。使用形态学滤波设计对图像的每个元素应用这个结构元素。当结构元素的原点与给定的像素对齐时,它与图像的相交部分定义了一组进行形态学运算的像素。 3. 腐蚀:每个像素与结构相交的集合替换成最小的像...
阅读(59) 评论(0)

Opncv学习之使用方向滤波器检测边缘

Sobel滤波器 void Sobel( InputArray src, OutputArray dst, int ddepth, int dx, int dy, int ksize = 3, double scale = 1, double delta = 0, int borderType = BORDER_DEFAULT ); 用索贝尔算子进行边缘检测: 计算X和Y方向上的导数并进行...
阅读(61) 评论(0)

中值滤波器

知识点: 1.中值滤波器对于去除椒盐噪点很有用cv::medianBlur(image,result,5);中值滤波器是非线性的,无法表示为一个核矩阵。该像素及它的相邻区域组成一组数组,仅仅计算这组数的中值,并用中值替代当前的像素值。缺点:噪点像素使得相邻像素的平均值发生变化,结果中的噪点依然是可见的。还同时保留边缘锐利度的优点,也会去除相同区域中的纹理(如背景中的树木)。#include <io...
阅读(27) 评论(0)

opencv学习 图像低通滤波

知识点: 1.滤波选择性的提取图像中呗认为传达重要信息的部分。滤波除去图像中的噪声,提取感兴趣的视觉特征,允许图像重采样等。 2.观察图像中变化的频率描述图像的方式成为频域,通过观察灰度分布来描述一幅图像呗成为空间域。 在频域分析的框架下,滤波操作的作用是增强部分频段,同时限制其他频段。 3.当滤波器的作用将一个像素替代为相邻像素的加权总和时,为线性的。 箱式滤波器将一个像素替换为相邻矩形...
阅读(31) 评论(0)

c++学习之对象指针

对象指针: Rectangle obj2; // 定义1个类Rectangle的对象obj2 obj2.a、obj2.b、obj2.RArea( )、obj2.RLen( ) Rectangle *p; // 定义1个类Rectangle的对象指针p p = &obj2; // 将对象obj2的地址赋值给对象指针p 访问方法: cin >> (*p).a >> (*p).b; co...
阅读(28) 评论(0)
31条 共2页1 2 下一页 尾页
    个人资料
    • 访问:1265次
    • 积分:287
    • 等级:
    • 排名:千里之外
    • 原创:27篇
    • 转载:4篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档