202010-08 基于opencv实现简单画板功能 OpenCV提供了很多简单的语句,实现复杂的功能,根据颜色和鼠标交互的基础语句,我们可以建立一个简单的画板。尽管它简单,但是制作的框架步骤不能少。如果您感兴趣,可以按照我的步骤写一下,或者直接复制总程序中的代码运行。一、功能明确画板功能,便于后续编写程序。目标功能:可调节颜色,有画图区域,可以进行鼠标输入。二、框架搭建主要有两步:第一步:建立颜色选区,可以用OpenCV的滑动条语句cv.createTrackbar设置。cv.cr... 继续阅读 >
202010-08 基于opencv的selenium滑动验证码的实现 基于selenium进行动作链由于最近很多人聊到滑动验证码怎么处理,所以决定自己动手试一下。做一个东西前。我们首先要对这个东西的操作过程有一个大概的了解。打开验证码页面。鼠标放到拖动按钮上对拖动按钮进行拖动拖动到阴影快重合的位置。放开拖动按钮。fromseleniumimportwebdriverfromselenium.webdriver.common.action_chainsimportActionChainsartice=browser.find_element_by_class_name('geetest_slider_... 继续阅读 >
202010-08 详解python中GPU版本的opencv常用方法介绍 引言本篇是以python的视角介绍相关的函数还有自我使用中的一些问题,本想在这篇之前总结一下opencv编译的全过程,但遇到了太多坑,暂时不太想回看做过的笔记,所以这里主要总结python下GPU版本的opencv。主要函数说明threshold():二值化,但要指定设定阈值blendLinear():两幅图片的线形混合calcHist()createBoxFilter():创建一个规范化的2D框过滤器canny边缘检测createGaussianFilter():创建一个Gaussian过滤器createLaplacia... 继续阅读 >
202010-08 opencv实现矩形检测 本文实例为大家分享了opencv实现矩形检测的具体代码,供大家参考,具体内容如下#include"cv.h"#include"highgui.h"#include<stdio.h>#include<math.h>#include<string.h>////////////////////////////////////////////////////////////////////函数功能:用向量来做COSα=两向量之积/两向量模的乘积求两条线段夹角//输入:线段3个点坐标pt1,pt2,pt0,最后一个参数为公共点//输出:线段夹角,单位为角度///////////////////... 继续阅读 >
202010-08 使用OpenCV检测图像中的矩形 本文实例为大家分享了OpenCV检测图像中矩形的具体代码,供大家参考,具体内容如下前言1.OpenCV没有内置的矩形检测的函数,如果想检测矩形,要自己去实现。2.我这里使用的OpenCV版本是3.30.矩形检测1.得到原始图像之后,代码处理的步骤是:(1)滤波增强边缘。(2)分离图像通道,并检测边缘。(3)提取轮廓。(4)使用图像轮廓点进行多边形拟合。(5)计算轮廓面积并得到矩形4个顶点。(6)求轮廓边缘之间角度的最大余弦。(7)画... 继续阅读 >
202010-08 opencv求解区域的内接矩形 实验室项目中,希望求取一个近似圆形区域的质心,原本使用最小外接圆的质心来等效为该区域质心。但是由于部分区域的形状过于不规则导致发生质心偏移现象。如下图:蓝色为实际要求质心。红色为等效圆质心为获取较为准确的质心,拟用最大内接矩形的中心作为该区域质心。采用改进的中心扩散法求内接矩形:先以最小外接矩的中心作为算法的起点进行中心扩散。得到一个内解矩形,在对最小外接矩的中心进行8邻域的遍历,应用中心扩散法分... 继续阅读 >
202010-08 使用OpenCV实现道路车辆计数的使用方法 今天,我们将一起探讨如何基于计算机视觉实现道路交通计数。在本教程中,我们将仅使用Python和OpenCV,并借助背景减除算法非常简单地进行运动检测。我们将从以下四个方面进行介绍:1.用于物体检测的背景减法算法主要思想。2.OpenCV图像过滤器。3.利用轮廓检测物体。4.建立进一步数据处理的结构。背景扣除算法有许多不同的背景扣除算法,但是它们的主要思想都很简单。假设有一个房间的视频,在某些帧上没有人和宠物,那么此时的... 继续阅读 >
202010-08 OpenCV 使用imread()函数读取图片的六种正确姿势 经常看到有人在网上询问关于imread()函数读取图片失败的问题。今天心血来潮,经过实验,总结出imread()调用的四种正确姿势。通常我要获取一张图片的绝对路径是这样做的:在图片上右键——属性——安全——对象名称。然后复制对象名称就得到了图片的绝对路径。如图:然而这样得到的路径直接复制粘贴到vs里面会直接报错,如下:可以看出我们获取的绝对路径的表示方法是单右斜线形式的。显然opencv的imread()不支持这种方式。但是!!... 继续阅读 >
202010-08 OpenCV4.1.0+VS2017环境配置的方法步骤 将VS2017上配置OpenCV4.1.0的过程记录于此。准备工具:OpenCV:4.1.0IDE:VS2017安装环境:Win10 64位操作系统主要步骤:下载OpenCV自解压程序安装VS2017新建项目配置包含路径配置库目录配置链接器配置环境变量重启VS2017测试配置是否成功详细过程:1.下载OpenCV自解压程序打开https://opencv.org/releases.html,可以看到如图1的界面。图1OpenCV4.1.0下载界面点击Winpack,设置好路径,开始下... 继续阅读 >
202010-08 opencv 阈值分割的具体使用 阈值分割像素图原始图像像素图见下面红色线:标注一条阈值线二进制阈值化首先设定一条阀值线如127大于127的像素点灰度值设为最大(如unit8的格式为255)小于127的像素点灰度值设为0反二进制阈值化首先设定一条阀值线如127大于127的像素点灰度值设为最小为0小于127的像素点灰度值设为最大(如unit8的格式为255)截断阈值化首先选定一个阀值,大于该阈值的像素点呗设定为该阈值,小于该阈值的不变如:阈值127,大于127的像素点值... 继续阅读 >
202010-08 opencv 图像加法与图像融合的实现代码 图像加法1.使用Numpy加法运算方式:结果=图像1+图像2原理:图像数据格式为unit88位二进制表示范围是0到255。二进制相加1.不超过255的,如100+58=1582.两数相加可能超过255,超过255的取模运算如255+58=(255+58)%255=582.使用opencv加法方法:结果=cv2.add(图像1,图像2)饱和运算:1.如果两数相加小于255,100+58=1582.两数相加可能超过255,值取255.255+58=255算法比较注意参与运算的两个图比较大小格式一样。程序无法对不同尺... 继续阅读 >
202010-08 opencv 图像轮廓的实现示例 图像轮廓Contours:轮廓轮廓是将没有连着一起的边缘连着一起。边缘检测检测出边缘,边缘有些未连接在一起。注意问题1.对象为二值图像,首先进行阈值分割或者边缘检测。2.查找轮廓需要更改原始图像,通常使用原始图像的一份进行拷贝。3.在opencv里,是从黑色背景里找白色。因此对象必须是白色,背景为黑色。方法cv2.findContours()cv2.drawContours()通过cv2.findContours()查找轮廓在哪里,再通过cv2.drawContours()将查找的... 继续阅读 >
202010-08 opencv 图像滤波(均值,方框,高斯,中值) 为什么要使用滤波消除图像中的噪声成分叫作图像的平滑化或滤波操作。信号或图像的能量大部分集中在幅度谱的低频和中频段是很常见的,而在较高频段,感兴趣的信息经常被噪声淹没。因此一个能降低高频成分幅度的滤波器就能够减弱噪声的影响。如下图,左图带有椒盐噪声,右图为使用中值滤波处理后的图片。图像滤波的目的有两个:一是抽出对象的特征作为图像识别的特征模式;另一个是为适应图像处理的要求,消除图像数字化时所混入的噪声... 继续阅读 >
202010-08 用opencv给图片换背景色的示例代码 图像平滑模糊/平滑图片来消除图片噪声OpenCV函数:cv2.blur(),cv2.GaussianBlur(),cv2.medianBlur(),cv2.bilateralFilter()2D卷积OpenCV中用cv2.filter2D()实现卷积操作,比如我们的核是下面这样(3×3区域像素的和除以10):img=cv2.imread('lena.jpg')#定义卷积核kernel=np.ones((3,3),np.float32)/10#卷积操作,-1表示通道数与原图相同dst=cv2.filter2D(img,-1,kernel)卷积操作,-1表示通道数与原图相同dst=... 继续阅读 >
202010-08 用opencv给图片换背景色的示例代码 图像平滑模糊/平滑图片来消除图片噪声OpenCV函数:cv2.blur(),cv2.GaussianBlur(),cv2.medianBlur(),cv2.bilateralFilter()2D卷积OpenCV中用cv2.filter2D()实现卷积操作,比如我们的核是下面这样(3×3区域像素的和除以10):img=cv2.imread('lena.jpg')#定义卷积核kernel=np.ones((3,3),np.float32)/10#卷积操作,-1表示通道数与原图相同dst=cv2.filter2D(img,-1,kernel)卷积操作,-1表示通道数与原图相同dst=... 继续阅读 >
202010-08 opencv 图像礼帽和图像黑帽的实现 python+OpenCV图像礼帽图像礼帽也叫图像顶帽礼帽图像=原始图像-开运算图像得到噪声图像开运算:先腐蚀再膨胀使用对象:二值图像使用方法:morphologyExcv2.MORPH_TOPHAT结果=cv2.morphologyEx(原始图像,cv2.MORPH_TOPHAT,卷积核)卷积核示例:k=np.ones((10,10),np.uint8)importcv2importnumpyasnpo=cv2.imread("tophat.bmp",cv2.IMREAD_UNCHANGED)k=np.ones((5,5),np.uint8)r=cv2.morphologyEx(o,cv2.MORPH_TOPHAT,k)cv2.im... 继续阅读 >