202111-07 OpenCV实现拼图算法 本文实例为大家分享了OpenCV实现拼图算法的具体代码,供大家参考,具体内容如下编程环境:VS2012+OpenCV2.4.6功能:第一种是将指定三幅图的指定位置的像素直接搬移到新的图像上第二种是讲指定三幅图按照我们设定好的大小非等比缩放到第三幅图上三张源图像两种效果图#include<opencv2/core/core.hpp>#include<opencv2/highgui/highgui.hpp>#include<opencv2\imgproc\imgproc.hpp>#include<iostream>usingnamespacestd;usingn... 继续阅读 >
202111-07 Opencv开发实现拼图游戏 本文实例为大家分享了Opencv开发实现拼图游戏的具体代码,供大家参考,具体内容如下一、代码#include<opencv2/opencv.hpp>#include<iostream>#include<stdlib.h>#include<time.h>#definePL800#definePW600#defineEAZY50usingnamespacestd;usingnamespacecv;constSizeDsize=Size(PL,PW);constSizedsize=Size(PL+9,PW+6);conststringSF="D:\\code\\c\\opencv\\opencv_face_detection_database\\sample\\1.jpg"... 继续阅读 >
202111-01 opencv检测动态物体的实现 之前我在超市看到当有物体经过时,监控的屏幕边缘会出现绿框。感觉蛮有意思的。来用opencv试试能不能实现类似的效果。 我采用的检测动态物体的方法是,比较前后两帧图像,即当前画面与上一帧的画面出现了不同。我们把两帧画面进行比较。然后框选出运动的物体。我们还希望程序可以判断当前窗口到底有没有物体在运动。那么我们就需要添加一个状态。为了方便我们找到什么时间有物体移动,我打印出时间。 当... 继续阅读 >
202110-29 Opencv实现二维直方图的计算及绘制 目录1.效果图2.源码参考这篇博客将介绍如何使用Python,Opencv进行二维直方图的计算及绘制(分别用Opencv和Numpy计算),二维直方图可以让我们对不同的像素密度有更好的了解。1.效果图原始图如下:1维直方图如下:2维直方图如下:X轴显示S值,Y轴显示色调。hsvmap效果图如下:2.源码#OpenCV中的二维直方图:使用相同的函数cv2.calcHist()计算。#对于1D直方图,我们从BGR转换为灰度#对于2D直方图,需要将图像从BGR转换为HSV... 继续阅读 >
202110-25 OpenCV 图像绘制的实现 目录+直线绘制圆形绘制矩形绘制椭圆型绘制自定义形状绘制文本+直线绘制参数解析:(图像矩阵,直线起始坐标,直线终止坐标、颜色、线条厚度)importcv2importnumpyasnpimg=cv2.imread(r"./images/1.jpg")cv2.line(img,(100,30),(210,180),color=(0,0,255),thickness=2)cv2.imshow("picshow",img)cv2.waitKey(0)圆形绘制参数(图像,圆心,半径,颜色,线条厚度)importcv2importnumpyasnpimg=cv2.imread(r"./images... 继续阅读 >
202110-17 OpenCV中Canny边缘检测的实现 目录1.Canny边缘检测理论1.1、高斯滤波1.2、Sobel算子计算梯度和方向1.3、非极大值抑制(定位准确的边缘同时可缩小边缘线宽)1.4、双阈值检测2.OpenCV之Canny边缘检测边缘检测一般是识别目标图像中亮度变化明显的像素点.因为显著变化的像素点通常反映了图像变化比较重要的地方.1.Canny边缘检测理论Canny是一种常用的边缘检测算法.其是在1986年JohnF.Canny提出的.Canny是一种multi-stage算法,分别如下:具体流... 继续阅读 >
202110-17 Python实现Opencv cv2.Canny()边缘检测 目录1.效果图2.源码补充:OpenCV-Python中Canny()参数这篇博客将介绍Canny边缘检测的概念,并利用cv2.Canny()实现边缘检测;Canny边缘检测是一种流行的边缘检测算法。它是由约翰F开发的,是一个多阶段的算法;Canny边缘检测大致包含4个步骤:降噪(使用高斯滤波去除高频噪声);计算边缘梯度和方向(SobelX、SobleY核在水平方向和垂直方向对平滑后的图像进行滤波,找到每个像素的边缘梯度和方向... 继续阅读 >
202110-12 python+opencv+selenium自动化登录邮箱并解决滑动验证的问题 前言大家做自动化登录时可能都遇到过滑块验证码需要手动验证的问题,这次我们就来解决他如下: 在我们做自动化登录时,总会遇到各种奇奇怪怪的验证码,滑块验证码就是其中最常见的一种。若我们的程序自动输入账号密码之后,还需要我们人工去滑动验证码那还能称得上是自动化吗?那么先给大家说一下我的‘解题步骤'。1.使用selenium打开邮箱首页。2.定位到账号密码框,键入账号密码。3.获取验证图片,使用opencv处理返... 继续阅读 >
202109-29 OpenCV 图像金字塔的实现示例 目录1.高斯金字塔2.拉普拉斯金字塔本文主要介绍了OpenCV图像金字塔,具有一定的参考价值,感兴趣的可以了解一下高斯金字塔reducevoidcv::pyrDown()expandvoidcv::pyrUp()1.高斯金字塔图像金字塔是对一张输入图像先模糊再下采样为原来的高、宽的1/2,不断重复模糊与下采样的过程就得到了不同分辨率的输出图像,叠加在一起就形成了图像... 继续阅读 >
202109-18 OpenCV实现高斯噪声 本文实例为大家分享了OpenCV实现高斯噪声的具体代码,供大家参考,具体内容如下OpenCV中提供了fill()函数可以产生均匀分布或者高斯分布(正态分布)的随机数,我们可以利用该函数产生符合高斯分布的随机数,之后在图像中加入这些随机数即可 voidfill(InputOutputArraymat,intdistType,InputArraya,InputArrayb,boolsaturateRange=false);mat:用于存放随机数的矩阵,目前只支持低于5通道的矩阵。distT... 继续阅读 >
202109-17 opencv-python图像配准(匹配和叠加)的实现 图像配准需是指对不同条件下得到的两幅或多幅图像进行匹配、叠加的过程。最简单的做法就是求得原图像到目标图像之间的透视变换矩阵,将原图像按照矩阵进行变换,就可以得到和目标图像相似的效果。透视变换是将成像投影到一个新的视平面,也称作投影映射。透视变换实质上是将二维的图片变换到三维的坐标系中之后再变换到另一个二维坐标系,与仿射变换相比透视变换实现的效果要多一些。求解精确矩阵和透视变换可以很容易地在opencv-p... 继续阅读 >
202109-17 OpenCV实现可分离滤波 自定义滤波无论是图像卷积还是滤波,在原图像上移动滤波器的过程中每一次的计算结果都不会影响到后面过程的计算结果,因此图像滤波是一个并行的算法,在可以提供并行计算的处理器中可以极大的加快图像滤波的处理速度。图像滤波还具有可分离性先对X(Y)方向滤波,再对Y(X)方向滤波的结果与将两个方向的滤波器联合后整体滤波的结果相同。两个方向的滤波器的联合就是将两个方向的滤波器相乘,得到一个矩形的滤波器voidfilter2D(I... 继续阅读 >
202109-16 OpenCV实现图像腐蚀 图像的腐蚀过程与图像的卷积操作类似,都需要模板矩阵来控制运算的结果,在图像的腐蚀和膨胀中这个模板矩阵被称为结构元素。与图像卷积相同,结构元素可以任意指定图像的中心点,并且结构元素的尺寸和具体内容都可以根据需求自己定义。定义结构元素之后,将结构元素的中心点依次放到图像中每一个非0元素处,如果此时结构元素内所有的元素所覆盖的图像像素值均不为0,则保留结构元素中心点对应的图像像素,否则将删除结构元素中心点... 继续阅读 >
202109-16 OpenCV实现图像膨胀 图像的膨胀与图像腐蚀是一对相反的过程,与图像腐蚀相似,图像膨胀同样需要结构元素用于控制图像膨胀的效果。结构元素可以任意指定结构的中心点,并且结构元素的尺寸和具体内容都可以根据需求自己定义。定义结构元素之后,将结构元素的中心点依次放到图像中每一个非0元素处,如果原图像中某个元素被结构元素覆盖,但是该像素的像素值不与结构元素中心点对应的像素点的像素值相同,那么将原图像中的该像素的像素值修改为结构元素中... 继续阅读 >
202109-16 Android基于OpenCV实现Harris角点检测 目录什么是角点?为什么要检测角点?Harris角点检测API操作效果源码什么是角点?角点就是极值点,即在某方面属性特别突出的点。当然,你可以自己定义角点的属性(设置特定熵值进行角点检测)。角点可以是两条线的交叉处,也可以是位于相邻的两个主要方向不同的事物上的点。角点通常被定义为两条边的交点,或者说,角点的局部邻域应该具有两个不同区域的不同方向的边界。常见的角点有:灰度梯度的最大值对应的像素点;两条... 继续阅读 >
202109-16 OpenCV实现直线拟合 相比于直线检测,直线拟合的最大特点是将所有数据只拟合出一条直线voidfitLine(InputArraypoints,OutputArrayline,intdistType,doubleparam,doublereps,doubleaeps);points:输入待拟合直线的2D或者3D点集。line:输出描述直线的参数,2D点集描述参数为Vec4f类型,3D点集描述参数为Vec6f类型。distType:M-estimator算法使用的距离类型标志,可以选择的距离类型在表7-1中给出... 继续阅读 >