![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机视觉
文章平均质量分 68
Hong_Youth
热爱生活、认真工作、成长进步!
人工智能、计算机视觉、编程语言等方向技术分享。
展开
-
计算机视觉技术学习(持续更新中)
本人研究生期间的研究方向是机器学习与人工智能,具体方向是计算机视觉中的图像分类和目标检测,本博客将记录研究生期间学习计算机视觉的过程,也是时刻提醒自己不断学习,勇于突破,希望大家能共勉。供大家一起学习和讨论!我将按照以下步骤进行计算机视觉技术的学习,也期待大家能够跟我一同学习,一起讨论,互相鼓励,一同成长!原创 2023-04-25 19:39:55 · 100 阅读 · 0 评论 -
OpenCV-Python入门实战13例
本文是对前面有关OpenCV-Python实战小工具的总结,汇总所有实战小项目,便于后期系统学习和回顾。1、图像的创建和颜色空间转换2、图像的加减乘除运算3、动态调整图像亮度和对比度4、图像添加颜色、与或非和通道运算5、一个窗口显示多张图像6、绿幕图像抠图7、图像几何形状绘制8、多边形绘制和随机颜色生成9、鼠标绘制矩形框10、图像的缩放、翻转、旋转11、图像像素直方图和均衡化12、图像模糊处理13、人脸检测关于所有小项目的完整代码,请关原创 2021-10-23 20:46:38 · 2604 阅读 · 0 评论 -
OpenCV-Python也能实现人脸检测了
opencv中也可以实现深度学习中的人脸识别算法了。是怎么一回事呢?就是opencv中的DNN库,更新了好多深度学习的模块或者说是库函数,这样就让我们摆脱了安装庞大繁琐的深度学习框架。我们只需下载相应的权重文件,就可以实现复杂的人脸识别和人脸检测功能了。人脸检测1、下载权重文件和配置文件2、话不多说,直接上代码# -*-coding:utf-8-*-"""File Name: face_detection.pyProgram IDE: PyCharmDate: 2021/10/17Cre原创 2021-10-22 19:52:59 · 2617 阅读 · 4 评论 -
OpenCV-Python图像模糊处理
其实我们平时在深度学习中所说的卷积操作,在 opencv 中也可以进行,或者说是类似操作。那么它是什么操作呢?它就是图像的模糊(滤波)处理。均值滤波使用 opencv 中的cv2.blur(src, ksize)函数。其参数说明是:src: 原图像ksize: 模糊核大小原理:它只取内核区域下所有像素的平均值并替换中心元素。3x3 标准化的盒式过滤器如下所示:特征:核中区域贡献率相同。作用:对于椒盐噪声的滤除效果比较好。# -*-coding:utf-8-*-"""File N原创 2021-10-20 19:54:23 · 20184 阅读 · 18 评论 -
OpenCV-Python图像像素直方图
图像直方图是反映一个图像像素分布的统计表,其横坐标代表了图像像素的种类,可以是灰度的,也可以是彩色的。纵坐标代表了每一种颜色值在图像中的像素总数或者占所有像素个数的百分比。图像是由像素构成,那么反映像素分布的直方图往往可以作为图像一个很重要的特征。直方图的显示方式是左暗又亮,左边用于描述图像的暗度,像素值比较小;右边用于描述图像的亮度,像素值比较大。按照维数去分类可以分为一维直方图和二维直方图。一维直方图python中绘制图像像素一维直方图(也成为单通道像素直方图)有两种方式,一种是opencv中的原创 2021-10-20 09:48:32 · 5849 阅读 · 0 评论 -
OpenCV-Python图像的缩放、翻转和旋转
图像的缩放opencv中对图像进行放缩有两种方式可以实现,一种是使用指定尺寸放缩;一种是使用缩放比例放缩。指定尺寸cv2.resize(image, (1920, 1080),直接指定放缩后的尺寸大小。缩放比例cv2.resize(image, (0,0), fx=2.0, fy=2.0,使用放缩比例放缩图片。此外,根据resize(src, dsize, dst=None, fx=None, fy=None, interpolation=None)函数的参数可知,还可以选择插值函数原创 2021-10-15 16:16:59 · 6432 阅读 · 0 评论 -
OpenCV-Python鼠标绘制矩形框和像素归一化
鼠标绘制矩形框之前有说到使用opencv绘制几何图形,但那些都是固定地给出坐标绘制固定位置的形状。有时需要鼠标在任何位置绘制几何形状,下面就来看看如何使用鼠标响应函数在图像的不同位置绘制几何形状。首先需要了解的是鼠标响应函数cv.setMouseCallback(windowName, onMouse, param=None)windowName: 窗口的名字;onMouse: 鼠标响应函数,回调函数;param: 传给回调函数的参数。最重要的是第2个参数,所有操作都是鼠标回调函数完成,例如原创 2021-10-10 12:48:44 · 1220 阅读 · 2 评论 -
OpenCV-Python绘制多边形和选择随机颜色
绘制多边形在使用 opencv 绘制几何图像时,除了大多数情况下绘制的简单形状,有时也需要绘制复杂的多边形形状。下面就来一起尝试如何绘制多边形形状。首先需要了解几个 opencv 库函数。cv.polylines()多边形绘制需要传入画布、轮廓点、是否闭合、绘制颜色、线条粗细、线条类型、顶点坐标小数位。cv.fillPoly()多边形填充需要传入画布、轮廓点、填充颜色、线条类型、顶点坐标小数位。drawContours()既可以填充也可以绘制多边形需要传入画布(三通道画布才能显示原创 2021-10-08 22:37:00 · 3265 阅读 · 0 评论 -
Opencv-Python图像像素均值、方差,绘制几何形状
图像像素均值、方差计算数组元素的均值和方差函数cv.meanStdDev()。传入数组数据,返回数组数据的均值和方差。在图像数组中,可以计算出图像数组的像素均值和方差。使用np.min和np.max可以计算数组元素的最小值和最大值。在图像数组中,可以计算每个通道像素最小值和最大值。以下面图像为例,计算该图像的像素均值和方差,以及每个通道的像素最小值和最大值。# -*-coding:utf-8-*-"""File Name: image_shape_painting.pyProgram IDE原创 2021-10-05 11:10:17 · 7217 阅读 · 2 评论 -
OpenCV-Python实现绿幕图像抠图
在进行图像处理的时候,有时需要将图像中的物体抠图出来,传统的做法可以使用PS、Excel等方法做。今天我们使用opencv代码的方式实现图像抠图。用到的函数主要有:cv.inRange(src, lowerb, upperb),cv.bitwise_not(),cv.bitwise_and()。cv.inRange(src, lowerb, upperb):函数的功能是根据像素的范围进行过滤,把符合像素范围的保留,赋值0,黑色;不符合的赋值255,白色。src:需要处理的图像lowerb:最小像数原创 2021-10-04 12:29:13 · 4644 阅读 · 0 评论 -
OpenCV-Python在一个窗口中显示多幅图像
在使用opencv显示图像时,有时候需要显示多张图像,就会出现多个窗口,显得冗余,用户不好操作。这时候就想着能不能将这些图像在一个窗口中显示。方法1:创建画布,将所有图像复制到画布中,最后显示画布 # 方法1:创建一个画布,将所有图像复制到画布中,最后显示画布 h, w, _ = img.shape img_list = [img, invert, gaussianBlur, flip] # 图像列表 four_view = np.zeros((h * 2 + 10, w原创 2021-09-30 20:58:17 · 7836 阅读 · 0 评论 -
OpenCV-Python图像颜色变换
给图像添加颜色在使用OpenCV操作图像时,有时候需要给图像添加不同的颜色,以达到不同的风格效果。这里介绍的主要是opencv中的cv.applyColorMap()函数。给图像应用颜色函数cv.applyColorMap(src, colormap, dst=None)src:表示传入的原图;colormap:颜色图类型(17种)。可以单独使用,也可以以一个列表的形式批量使用。以下图举例实现:直接上代码:# -*-coding:utf-8-*-"""File Name: color原创 2021-09-30 16:24:19 · 3915 阅读 · 0 评论 -
OpenCV-Python滚动条函数cv2.createTrackerbar()的使用
使用cv2.createTrackerbar()动态改变图像亮度在使用opencv读取图像时,我们有时需要动态的改变图像的亮度,这就需要用到opencv自带的滚动滑块函数cv2.createTrackerbar()。通过官方文档可知该函数有5个参数:trackbarName:滚动滑块的名称;windowName:添加滚动滑块窗口的名称;value:滑块的初始位置;count:滑块可以移动的最大值;onChange:指向每次滑块更改位置时要调用的函数的指针,有默认值0。此函数的原型应为void原创 2021-09-22 20:20:52 · 3149 阅读 · 3 评论 -
OpenCV-Python对图像像素进行操作
遍历并修改图像像素值在使用opencv处理图像时,有时需要对图像的每个像素点进行处理,比如取反、修改值等操作,就需要通过h和w遍历像素。依然以下图为例:具体代码:import cv2 as cvimport numpy as npdef image_pixel(image_path: str): img = cv.imread(image_path, cv.IMREAD_COLOR) cv.imshow('input', img) h, w, c = img.sh原创 2021-09-21 17:07:51 · 3083 阅读 · 0 评论 -
OpenCV-Python图像颜色空间转换和图像的创建
图像颜色空间转换在使用OpenCV读去图像文件时,我们得到的图像通道顺序是BGR,每个通道的数值是0~255之间。由于对图像操作的需要,我们会将图像进行颜色空间转换处理,通常是将图像从RGB颜色空间转换到其他颜色空间,比如HSV颜色空间。这个过程需要用到两个opencv函数。图像读取函数cv2.imread()这个函数有两个参数,第一个是图像文件名,即输入图像的文件所在路径和名称;第二个参数是flag,指定读取图像文件的类型,常见的三种读取图像类型的标志为:(1) cv2.IMREAD_COLO原创 2021-09-19 22:24:02 · 720 阅读 · 0 评论 -
图像分类中的深度学习网络汇总
深度学习在图片处理中的应用是从图像分类开始的,所以我们要先从图像分类中了解深度学习的应用情况。本文根据阅读大量的资料和视频资源,简单地总结了图像分类中所有经典的深度学习神经网络。1、LeNetLeNet神经网络由深度学习三大巨头之一的Yan LeCun在1998提出,他同事也是卷积神经网络CNN父。LeNet主要用来进行手写字符的识别与分类。虽然LeNet早在20世纪90年代就已经提出了,但由于当时缺乏大规模的训练数据,计算机硬件的性能也较低,因此LeNet神经网络在处理复杂问题时效果并不理..原创 2021-03-29 14:22:21 · 1275 阅读 · 0 评论 -
深度学习图像处理相关文献
本文致力于收集深度学习图像处理方面的深度学习神经网络的文献。图像分类(Classification)AlexNethttp://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf VGGhttps://arxiv.org/abs/1409.1556 GoogLeNet, Inceptionv1(Going deeper with convolutions)...原创 2021-03-22 20:58:35 · 886 阅读 · 0 评论 -
京东开源FaceX-Zoo,一站式人脸识别研究平台
本文转载自:“我爱计算机视觉” 微信公众号,如有问题,请联系作者删除。近日,京东AI研究院开源了FaceX-Zoo,一个专为人脸识别而生的开源库,论文 FaceX-Zoo: A PyTorch Toolbox for Face Recognition 详述了其特点,不仅方便比较研究不同的方法,还针对实际应用开发了特定功能(如人脸戴口罩、Shallow Face Learning 等)。非常值得关注!该文作者信息:链接:https://arxiv.org/pdf/2101.04407.pdf转载 2021-01-21 21:15:48 · 1255 阅读 · 0 评论 -
Meat quality evaluation based on computer vision technique A review 论文解读
《基于计算机视觉技术的肉质评价综述》目的:评估肉类生产过程的安全性和质量,确保人类食用更加安全健康的肉类传统方法:昂贵和耗时、破坏性、不一致、不稳定解决思路:将计算机视觉技术引入肉食品的各种质量检测评价指标:新鲜度、嫩度经典的评估方法有:感官评估和化学技术、TVB-N(总挥发盐基氮)和微生物种群图像评估可根据肉类的属性:颜色、形状、大小、表面纹理特征使用机器视觉方法的局限性:仅限于识别颜色、大小、表面结构等外部质量因素。机器视觉系统:帧捕捉器、相机、光源、计算机硬件和软件..原创 2021-01-16 19:49:57 · 219 阅读 · 0 评论 -
图像语义分割
语义分割简介图像语义分割是计算机视觉中十分重要的领域。它是指像素级地识别图像,即标注出图像中每个像素所属的对象类别。上图为语义分割的一个实例,其目标是预测出图像中每一个像素的类标签。图像语义分割是图像处理和计算机视觉技术中关于图像理解的重要的一环。语义分割对图像中的每一个像素点进行分类,确定每个点的类别(如属于背景、边缘或身体等)需要和实例分割区分开来。语义分割没有分离同一类的实例;它关心的只是每个像素的类别,如果输入对象中有两个相同类别的对象,则分割本身不会将它们区分为单独的对象。原创 2021-01-09 19:07:43 · 1028 阅读 · 0 评论 -
使用OpenCV实现车道线检测
简介计算机视觉在自动化系统观测环境、预测该系统控制器输入值等方面起着至关重要的作用。本文介绍了使用计算机视觉技术进行车道检测的过程,并引导我们完成识别车道区域、计算道路RoC和估计车道中心距离的步骤。摄像机校准几乎所有摄像机使用的镜头在聚焦光线以捕捉图像时都存在一定的误差,因为这些光线由于折射 在镜头边缘发生了弯曲。这种现象会导致图像边缘的扭曲。主要作用就是去除图像失真。透视变换检测车道的第一步是调整我们的视觉系统,以鸟瞰的角度来观察前方的道路,这就有助于计算道路的曲率,因此有助于我们预测未来几百原创 2020-11-10 16:44:57 · 5135 阅读 · 2 评论 -
使用OpenCV实现图像覆盖
颜色通道说明每张图像都包括RGB三个通道,分别代表红色、绿色和蓝色,使用它们来定义图像中任意一点的像素值,红绿蓝的值在0-255之间。例如:一个像素值[255,0,0]代表全部为红色,像素值[255, 255,0]是红色和绿色的混合,将显示为黄色。但是,如果使用OpenCV读取图像,它将以BGR格式生成图像,那么[255,0,0]将代表蓝色。使用OpenCV读取一张图像任何图像都可以通过OpenCV使用cv2.imread()命令读取。不过,OpenCV不支持HEIC格式的图像,所以不得不使用其它原创 2020-10-31 14:43:30 · 3385 阅读 · 0 评论 -
基于自适应显着性的图像分割
前言介绍成产品及系统平台的现场演示,编写技术应用服务方案等,编写投标类方案文件及标书的制作;通常,当我们看到一张图片时,会在图片中聚焦一个焦点。这个可能是一个人,一座建筑物甚至是一个桶。 其他没有聚焦区域虽然很清晰,但是却由于颜色单调或者纹理较为平滑而很少引起关注。当遇到此类图像时,我们希望从图像中分割出感兴趣的对象。下面给出了显式图像的示例,本文探讨了此类显式图像的分割方法,也称为显着性的图像分割。在上面的图像中,桶(左)和人(右)是感兴趣的对象最开始的分割方式起源于希望能够自主寻找图像中的Tri原创 2020-10-20 10:55:38 · 1275 阅读 · 0 评论 -
利用OpenCV实现图像修复
图像修复技术的应用想想一下,我们有一张非常棒的相片,但是由于时间比较久远,没有电子版留底,而纸质版的又十分不便于保存。因此长采用扫描的方式获得电子版。但是非常不幸,扫描过程中落入了一根头发,或者是机器出现故 障,对相片造成了影响,这个时候就可以通过图像修复技术解决这个问题。OpenCV中图片修复技术1、Inpaint_ns:基于Navier-Stokes的图像修复该方法在2001年提出,其神奇之处竟然是基于流体力学理论提出的方法。根据其作者提出,我们需要解决的问题可以抽象成在一个鞋子图片上有一个黑色原创 2020-10-18 19:56:01 · 2052 阅读 · 2 评论 -
使用OpenCV进行图像全景拼接
图像拼接介绍图像拼接是计算机视觉中最成功的应用之一。如今,很难找到不包含此功能的手机或图像处理API。在本文中,我们将讨论如何使用Python和OpenCV进行图像拼接。也就是,给定两张共享某些公共区域的图像,目标是“缝合”它们并创建一个全景图像场景。当然也可以是给定多张图像,但是总会转换成两张共享某些公共区域图像拼接的问题,因此本文以最简单的形式进行介绍。下图是一张拼接图的效果:图像拼接包含的技术内容:关键点检测局部不变描述符(SIFT,SURF等)特征匹配使用RANSAC进行单应性估计原创 2020-10-05 16:24:04 · 2845 阅读 · 4 评论 -
使用OpenCV进行颜色分割
图像分割在滤波、变换、缩放等任务中,图像分割具有重要的意义。图像分割是将不同的对象划分为不同的部分,并将这些区域以明显的颜色或者记号标记出来。图像分割是使用轮廓、边界框等概念进行其他高级计算机视觉任务(例如对象分类和对象检测)的基础。良好的图像分割为我们后续的图像分类以及检测奠定了基础。计算机视觉中三种不同的图像分割类型:1. 颜色分割或阈值分割2. 语义分割3. 边缘检测本次将介绍基于颜色的图像分割,并通过OpenCV实现。(准确性落后于DL,运行速度快于DL)颜色分割可以用于检测身体肿瘤原创 2020-10-01 08:36:28 · 5536 阅读 · 3 评论 -
人脸关键点检测PFLD
人脸关键点检测人脸关键点检测是诸如人脸识别、表情分析、三维人脸重建等其他人脸相关任务的基础。在人脸识别技术中是人脸检测的下一步任务。关键点检测基础人脸关键点检测是指给定人脸图像,定位出人脸面部的关键点,包括眉毛、眼睛、鼻子、嘴、脸部轮廓区域的点,由于受到姿态和遮挡等因素的影响,关键点检测是一个富有挑战性的任务。人脸关键点有以下主要的应用:人脸姿态对齐、人脸识别等算法都需要对人脸进行特征点检测,实现姿态对齐,从而提高模型的精度。人脸美艳与编辑,基于关键点可以精确分析脸型、眼睛形状、鼻子形状等,从原创 2020-09-10 19:01:03 · 3455 阅读 · 5 评论 -
比较两张图片的相似性
1、原图上可以发现的信息,两张图拍摄角度不一样,图一拍的比较正,聚焦近;图二拍的有点倾斜,聚焦远。光照不一样,图一光照亮度要比图二高。图片中水泥模子干湿程度不一样,图一的水泥已经完全干了;图二还是水泥的凝结过程中的一种状态。拍照的方向不一样,假定图一是正向;图二就是反向的。水泥模子之间的距离也是不一样的,图一挨得比较近;图二挨得比较远。2、如果单从比较两张图片是否相同,那肯定不相同;若是比较图一中水泥模子是否为图二中水泥模子晾干之后的结果,那答案是相同的,可以将图一或者图二换成与之对应的相位就可..原创 2020-08-23 20:57:48 · 5751 阅读 · 0 评论 -
计算机视觉相关会议
计算机视觉(CV)界三大顶级国际会议ICCV IEEE International Conference on Computer Vision该会议由美国电气和电子工程师学会(IEEE,Institute of Electrical & Electronic Engineers)主办,主要在欧洲、亚洲、美洲的一些科研实力较强的国家举行。作为世界顶级的学术会议,首届国际计算机视觉大会于1987年在伦敦揭幕,其后两年举办一届。ICCV是计算机视觉领域最高级别的会议,会议的论文集代表了计算机视觉领原创 2020-08-07 11:06:50 · 640 阅读 · 0 评论 -
win10系统下基于SeetaFace2.0的人脸识别系统的实现
项目简介最近一段时间在网上看到了关于SeetaFace2.0人脸识别引擎的消息,由于之前已经使用SeetaFace1.0做了一个简易的人脸识别系统,此次发布了2.0版本,所以急切地想要改进之前的项目,将算法部分使用2.0版本,来看一下效果。实验发现确实比1.0版本速度要快,精度要高。关于SeetaFace2.0人脸识别引擎的说明和介绍请本人的另一篇博客:SeetaFace2.0:中科视拓开源跨平台C++商业人脸识别库实现过程1. 系统环境本系统使用的是SeetaFace2.0人脸识别算法,VS201原创 2020-07-26 19:33:16 · 769 阅读 · 0 评论 -
SeetaFace6人脸识别算法
中科视拓开源SeetaFace6人脸识别算法2020年3月31日,中科视拓宣布开放SeetaFace6人脸识别算法。SeetaFace6包含人脸识别的基本能力:人脸检测、关键点定位、人脸识别,同时增加了活体检测、质量评估、年龄性别估计,并且顺应实际应用需求,开放口罩检测以及口罩佩戴场景下的人脸识别模型。与去年开源的SeetaFace2相比,SeetaFace6采用了商用版最新的推理引擎TenniS,ResNet50的推理速度,从SeetaFace2在I7的8FPS提升到了20FPS。SeetaFace原创 2020-07-17 21:17:01 · 2567 阅读 · 12 评论 -
win10系统下调通SeetaFace1.0人脸识别引擎
调试人脸识别引擎SeetaFace1.01、目的文章目录调试人脸识别引擎SeetaFace1.01、目的2、相关知识与技术介绍2.1、OpenCV简介2.2、SeetaFace简介3、系统环境搭建与实验结果(vs2019+OpenCV3.4.1+Qt3.15.0)3.1、系统的总体设计方案3.2、配置系统环境3.2.1、配置OpenCV3.2.2、配置SeetaFace3.2.3、配置Qt插件3.3 实验结果 目前计算机视觉技术已原创 2020-07-04 17:26:03 · 958 阅读 · 0 评论 -
SeetaFace2.0:中科视拓开源跨平台C++商业人脸识别库
SeetaFace2.0:中科视拓开源跨平台C++商业人脸识别库SeetaFace2.0 的人脸识别库,来自中科院计算所的中科视拓团队商业开源,它完全使用 C++编写,支持 Windows、Linux 和 ARM 平台,且不依赖第三方库。人脸识别库中开源的三个模块都取得了很好的性能和很高的运算效率。SeetaFace2.0SeetaFace2.0 是一个完整的人脸识别项目,其中包括了人脸检测模块 FaceDetector、面部关键点定位模块 FaceLandmarker 以及人脸特征提取与比对模块 F转载 2020-07-01 21:07:26 · 658 阅读 · 0 评论 -
从单幅图像学习生成模型,可应用于多种图像处理操作
从单幅图像学习生成模型,可应用于多种图像处理操作一种可以从单幅自然图像学习的非条件生成模型–SinGAN,能够捕捉图像的内部块分布信息,生成具有相同视觉内容的高质量、多变的样本。什么是GAN生成式对抗网络(GAN, Generative Adversarial Networks )是一种深度学习模型,是近年来复杂分布上无监督学习最具前景的方法之一。模型通过框架中(至少)两个模块:生成模型(Generative Model)和判别模型(Discriminative Model)的互相博弈学习产生相当好的翻译 2020-06-07 21:59:00 · 1091 阅读 · 1 评论