[置顶]python知识导航贴,持续更新

[置顶]C# 语言高级特性知识导航贴,持续更新

[置顶]netMarketing类库: 类库说明

[置顶]本站视觉相关教程整理贴子,持续更新

[置顶]C++相关导航贴,持续更新

[置顶]本站收费服务公告(netMarketing源码,工业自动化行业培训班等)

[置顶]2020年勇哥的机器视觉实验项目清单(大纲)

[置顶]本站连载贴子系列,持续更新中……

[置顶]勇哥的免费视频教程清单

[置顶]勇哥在B站发布的视频清单

[置顶]运动控制专题,持续更新

opencv3.1学习笔记(19) Canny算子

Canny算子的原理是比较复杂的,勇哥听了几遍都没搞明白。唉,还是先学会怎么用吧。演示代码:#include <opencv2/opencv.hpp> #include <iostream> #include <math.h> using namespace cv; int t1_value = 50; int max_value = 255;...

opencv3.1学习笔记(18) Laplance算子

演示代码:#include <opencv2/opencv.hpp> #include <iostream> #include <math.h> using namespace cv; int main(int argc, char** argv) { Mat src, dst; src = imread("e:/girl.pn...

opencv3.1学习笔记(17) Sobel算子

演示代码:#include <opencv2/opencv.hpp> #include <iostream> #include <math.h> using namespace cv; int main(int argc, char** argv) { Mat src, dst,dst2,dst3,dst4,dst5,dst6,dst7;...

opencv3.1学习笔记(16) 处理卷积边缘问题

演示代码:#include <opencv2/opencv.hpp> #include <iostream> #include <math.h> using namespace cv; int main(int argc, char** argv) { Mat src, dst; src = imread("e:/bobdert...

opencv3.1学习笔记(15) 自定义线性滤波

演示代码:#include <opencv2/opencv.hpp> #include <iostream> #include <math.h> using namespace cv; int main(int argc, char** argv) { Mat src, dst,dst2,dst3,dst4,dst5,dst6; src...

opencv3.1学习笔记(14) 阈值操作

演示代码:#include <opencv2/opencv.hpp> #include <iostream> #include <math.h> using namespace cv; Mat src, gray_src, dst; int threshold_value = 127; int threshold_max = 255; int...

opencv3.1学习笔记(13) 图像金字塔-上采样与降采样

演示代码:#include <opencv2/opencv.hpp> #include <iostream> #include <math.h> using namespace cv; int main(int argc, char** argv) { Mat src, dst; src = imread("e:/5.png&q...

opencv3.1学习笔记(12) 形态学操作应用-提取水平与垂直线

演示代码:#include <opencv2/opencv.hpp> #include <iostream> #include <math.h> using namespace cv; int main(int argc, char** argv) { Mat src, dst,dst2,dst3,dst4; src = imread(&...

opencv3.1学习笔记(11) 形态学操作

OpenCV的形状学算子morphologyEx,包括了常见的:开运算闭运算梯度顶帽黑帽等操作。演示代码:#include <opencv2/opencv.hpp> #include <iostream> #include <math.h> using namespace cv; int main(int argc, char** argv) {...

opencv3.1学习笔记(10) 膨胀与腐蚀

膨胀与腐蚀是形态学操作中的一种,是比较有用的。在halcon机器视觉中也是常用操作。请看演示代码:#include <opencv2/opencv.hpp> #include <iostream> #include <math.h> using namespace cv; Mat src, dst; void CallBack_Demo(int...

opencv3.1学习笔记(9) 图像模糊

演示代码:#include <opencv2/opencv.hpp> #include <iostream> #include <math.h> using namespace cv; int main(int argc, char** argv) { Mat src, dst,dst1,dst2,dst3; src = imread(&...

opencv3.1学习笔记(8) 绘制形状与文字

绘制形状比较简单,基本上没啥子好说的,见代码。演示代码:#include <opencv2/opencv.hpp> #include <iostream> using namespace std; using namespace cv; Mat bgImage; const char* drawdemo_win = "draw shapes and...

opencv3.1学习笔记(7) 亮度对比度

演示代码:#include <opencv2/opencv.hpp> #include <iostream> #include <math.h> using namespace cv; int main(int argc, char** argv) { Mat src, dst; src = imread("e:/5.png&q...

opencv3.1学习笔记(6) 图像混合

图像混合的原理理论-线性混合操作其中 a的取值范围为0~1之间对应的opencv算子是 addWeighted()参数1:输入图像Mat – src1参数2:输入图像src1的alpha值参数3:输入图像Mat – src2参数4:输入图像src2的alpha值参数5:gamma值参数6:输出混合图像注意点:两张图像的大小和类型必须一致才可以演示代码:#include <opencv2/op...

opencv学习笔记——sobel

学习sobel总结:先说下边缘,在图像上像素发生跃迁的的地方。如何捕捉边缘:对图像进行一阶求导,▲ = f(x)-f(x-1),▲的值越大,那么说明x方向边缘信号越强烈。 下图图我们可以看见像素值明显发生改变,表示这一现象可以用导数,变化率越大,说明像素值改变越显著f(x)为图像像素值的函数图,f'(t)为f(t)的一阶导数,即当前像素减去上一个像素的差值,可以看到红圈标注的地方,即边缘信...

OPENCV中的Sobel函数

sobel算子是一种常用的边缘检测算子,是一阶的梯度算法。对噪声具有平滑作用,提供较为精确的边缘方向信息,边缘定位精度不够高。当对精度要求不是很高时,是一种较为常用的边缘检测方法。它进行处理的模板如下:其中,Gx是横向的算子,Gy是纵向的算子。原图像记为f,则GX = Gx*fGY = Gy*fGx =-1*f(x-1, y-1) + 0*f(x,y-1) + 1*f(x+1,y-1)+(-2)*...

OpenCV之bitwise_and、bitwise_not等图像基本运算及掩膜

1.图像基本运算图像的基本运算有很多种,比如两幅图像可以相加、相减、相乘、相除、位运算、平方根、对数、绝对值等;图像也可以放大、缩小、旋转,还可以截取其中的一部分作为ROI(感兴趣区域)进行操作,各个颜色通道还可以分别提取及对各个颜色通道进行各种运算操作。总之,对于图像可以进行的基本运算非常的多,只是挑了些常用的操作详解。void add(InputArray src1, InputArray s...

opencv3.1学习笔记(5) 安全读写像素

利用Mat对象的像素数组指针来修改图片,是老司机玩的,新手的话可以采用一些安全访问的办法。见下面的代码。演示代码:#include <opencv2/opencv.hpp> #include <iostream> #include <math.h> using namespace cv; using namespace std; int main(...

OpenCV代码中常见的vector操作是什么?

一、What is vector? vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的.用法:1.文件包含: 首先在程序开头处加上#include<vector>以包含所需要的类文件vector,还有一定要加上using...

如何在代码中区分OpenCV版本 如何区分是OpenCV2还是OpenCV3

1、C++OpenCV在C++中的版本号在<opencv2/core/version.hpp>里面,贴出部分和版本相关的定义// opencv2 #define CV_VERSION_EPOCH 2 #define CV_VERSION_MAJOR 4 #define CV_VERSION_MINOR 13 #define CV_VERSION_REVISIO...

opencv3.1学习笔记(4) Mat对象介绍

Mat对象介绍Mat对象是从OpenCV2.0引入的对象,处理的对象其实是二维像素数组。就像OpenCV官方教程中说的,下图中的车在CCD中看到的其实是一个二维的数组。Mat这个对象集成了一些操作这个数组数据的方法。最初的opencv版本中,和Mat功能相似的是数据结构 lIplImage。lIplImage是从2001年OpenCV发布之后就一直存在,是C语言风格的数据结构, 需要开发者自己分...

opencv启动USB摄像头并保存图片的代码

勇哥的测试平台是vs2019+opencv3.1,下面的代码可用。功能是打开usb摄像头,并保存每帧图片。#include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/core/core.hpp> #include<ios...

opencv3.1学习笔记(3) 矩阵的掩膜操作

下面的代码实现图像对比度的调整。效果见后面的图片。其实勇哥认为这个实现的是图片锐化效果,如果用photoshop来做对比,实现的就是锐化滤镜的效果。而photoshop的对比度效果与这个是是不同的。代码说明:(1)注释的代码用来操作图片中的像素。这也是数据类型Mat的一个功能。CV_Assert(myImage.depth() == CV_8U); Mat.ptr<uchar>(...

opencv3.1学习笔记(2) 加载、修改颜色空间、保存图像

先上代码:#include <opencv2/opencv.hpp> #include <iostream> #include <math.h> using namespace cv; int main(int argc, char** argv) { Mat src, dst; src = imread("e:/3.png&q...

opencv3.1学习笔记(1) opencv介绍,环境搭建

在官网 www.opencv.org 上下载 这是一个比较老的版本。本系列学习笔记使用的这个版本。下面是opencv的简单介绍。下面说明一下opencv加上vc++开发环境的配置。首先按下面的说明添加vc++的库,包含目录,依赖项。这里勇哥使用的是vs2019集成环境下的vc++。接下来用一段代码验证一下opencv开发环境是否搭建成功。#include <opencv2/opencv.h...

OpenCV学习31--图像分水岭分割算法

任意的灰度图像可以被看做是地质学表面,高亮度的地方是山峰,低亮度的地方是山谷。给每个孤立的山谷(局部最小值)不同颜色的水(标签),当水涨起来,根据周围的山峰(梯度),不同的山谷也就是不同的颜色会开始合并,要避免这个,你可以在水要合并的地方建立障碍,直到所有山峰都被淹没。你所创建的障碍就是分割结果,这个就是分水岭的原理,但是这个方法会分割过度,因为有噪点,或者其他图像上的错误。所以OpenCV实现了...

OpenCV学习30--阈值分割的OTSU算法

OTSU算法又叫最大类间方差阈值分割算法,也叫大津算法,是在1980年由日本的大津展之提出,是由最小二乘法推导而来,用于一些简单的阈值确定。对于一个灰度图,我们有时候非常想把他用一个阈值将他的前景和背景区分开来。我们可以合理的假设为如果将图像的像素分布图画出来,那么图像上应该有两个峰,即前景色和背景色。在这两个峰之间肯定有一个谷,那么我们就可以将阈值设在这里,从而对图像达到一个良好的分割效果。怎样...

OpenCV学习29--计算物体的凸包

物体的凸包(Convex hull)用于理解物体的形状或轮廓。很多复杂物体的特性都能很好的被这种缺陷表现出来。 一组平面上的点,求一个包含所有点的最小的凸多边形,这就是凸包问题了。这可以形象地想成这样:在地上放置一些不可移动的木桩,用一根绳子把他们尽量紧地圈起来,这就是凸包了。凸包有什么应用?凸包在很多地方有着重要的应用,如手势识别,需要识别出手的轮廓的凸包,二维或者三维区域的边界的信息等。凸缺陷...

OpenCV学习28--在图像中寻找轮廓

查找轮廓什么是轮廓:一个轮廓是由图像中的一系列点组成的,也就是图像中的一条曲线。在OpenCV中一般用序列来存储轮廓信息。序列中的每个元素是曲线中每个点的位置。关于序列:序列是内存存储器中可以存储的一种对象,序列是某种结构的链表。下面是序列结构体:typedef sturct CvSeq{ int flags; int header_size; CvSeq * h_pr...

OpenCV学习27--反向投影

什么是反射投影反射投影是记录给定图像中像素点如何适应直方图模型像素分布的方式(估计你看了这句话还是不懂)。英文的解释是这样的:a way of recording how well the pixels of a given image fit the distribution of pixels in a histogram model.(还是不懂?)简单地讲就是就是先计算某一特征的直方图模型,...
会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864