展开

关键词

OpenCV

转换灰度 1.1 读取 import cv2 as cv # 读取片 img = cv.imread('.. /Resources/Photos/park.jpg') cv.imshow('Park', img) 1.2 使用OpenCV # 灰度化 gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY = array(Image.open("Resources/Photos/park.jpg").convert('L')) ​ im2 = 255 - im # 对进行反相 ​ im3 = (100.0/255) * im + 100 # 将素值变换到 100...200 区间 ​ im4 = 255.0 * (im/255.0)**2 # 对素值求平方后得到的 参考 python数组操作与灰度变换

12230

Python opencv基础总结(四) 模板 二值化

文章目录 一、模板 1. 模板是一种最原始、最基本的模式识别方法,研究某一特定对象物的案位于的什么地方,进而识别对象物,这就是一个问题。 它是中最基本、最常用的方法。模板具有自身的局限性,主要表现在它只能进行平行移动,若原中的目标发生旋转或大小变化,该算法无效。 模板就是在整个区域发现与给定子的小块区域 所以模板首先需要一个模板(给定的子) 另外需要一个待检测—源 在待检测上,从左到右,从上向下,计算模板与重叠子度 [elx1liphmo.png] 结果 [848opckxpo.png] 二、二值化 在数字中,二值占有非常重要的地位,的二值化使中数据量大为减少,从而能凸显出目标的轮廓 该函数的阈值操作属于素级的操作,在灰度中,每个素都对应一个灰度值(0~255,0黑、255白),我们将阈值函数 threshold() 应用于的灰度值与阈值进行比较,从而实现二值化

1.7K31
  • 广告
    关闭

    腾讯云618采购季来袭!

    一键领取预热专享618元代金券,2核2G云服务器爆品秒杀低至18元!云产品首单低0.8折起,企业用户购买域名1元起…

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python opencv基础总结(四) 模板 二值化

    文章目录 一、模板 1. 2. 算法 3. opencv相关API 二、二值化 1. 全局阈值函数 2. 局部阈值函数 一、模板 1. 模板是一种最原始、最基本的模式识别方法,研究某一特定对象物的案位于的什么地方,进而识别对象物,这就是一个问题。它是中最基本、最常用的方法。 模板就是在整个区域发现与给定子的小块区域 所以模板首先需要一个模板(给定的子) 另外需要一个待检测—源 在待检测上,从左到右,从上向下,计算模板与重叠子结果如下: 二、二值化 在数字中,二值占有非常重要的地位,的二值化使中数据量大为减少,从而能凸显出目标的轮廓。 该函数的阈值操作属于素级的操作,在灰度中,每个素都对应一个灰度值(0~255,0黑、255白),我们将阈值函数 threshold() 应用于的灰度值与阈值进行比较,从而实现二值化

    6740

    OpenCV模板

    C++代码: #include <opencv2/opencv.

    11140

    OpenCV05-操作

    05-操作 #include<opencv2/opencv.hpp> #include<iostream> using namespace std; using namespace cv; int i++) { for (int j = 0; j < gray_cols; j++) { int gray_value = gray_src.at<uchar>(i, j); //当前点的素值 srcNegation1 image", CV_WINDOW_AUTOSIZE); imshow("srcNegation1 image", dst1); waitKey(0); return 0; } 修改素值 //1.灰度 image.at<uchar>(y,x) = 128; //2.BGR三通道 image.at<Vec3b>(y,x)[0] = 128; image.at<Vec3b>(y, x)[1] = 128; image.at<Vec3b>(y,x)[2] = 128; //3.空白赋值 image = Scalar(0); //Scalar(参数1, 参数2...)

    13120

    OpenCV06-混合

    06-混合 论-线性混合操作 g(x)=(1−α)f0​(x)+αf1​(x) 相关API void cv::addWeighted(InputArray sec1, //参数1:输入Mat src1 double alpha, //参数2:输入src1的alpha值 InputArray src2, / /参数3:输入Mat src2 double beta, //参数4:输入src2的beta值(通常为1-alphp) double gamma, //gamma值 OutputArray dst, //输出混合 int dtype = ; //注:src1和src2的大小和类型必须一致 //公式:dst(I) = saturate(src1(I)*alpha + src2(I)*beta + gamma) saturate用于确保素值范围为

    13110

    OpenCV(二)

    基本函数 基本函数包括读取,灰度,模糊,边缘提取,膨胀,腐蚀,重新整大小,剪切等 #pylint:disable=no-member # 基本函数 #读取,灰度,模糊,边缘提取 ,膨胀,腐蚀,重新整大小,剪切 import cv2 as cv ​ # 读取片 img = cv.imread('.. ,输出的每个素点是原上对应素点与周围素点的加权和高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于的减噪过程 blur = cv.GaussianBlur(gray, (5,5 ) cv.imshow('Gray', gray) 3.2 二值化 的二值化就是将上的素点的灰度值设置为0或255,这样将使整个呈现出明显的黑白效果。 在数字中,二值占有非常重要的地位,的二值化使中数据量大为减少,从而能凸显出目标的轮廓。

    10020

    OpenCV算法之sift

    sift; Ptr<DescriptorMatcher> matcher_l2 = DescriptorMatcher::create("BruteForce"); //欧氏距离 matcher_l2->knnMatch(desc1_sift,desc2_sift,dmatches_sift,2); //

    16000

    OpenCV算法之freak

    <cv::DescriptorMatcher> matcher_l1 = DescriptorMatcher::create("BruteForce-Hamming"); //二进制汉明距离

    13600

    OpenCV算法之surf

    Ptr<cv::DescriptorMatcher> matcher_l2 = DescriptorMatcher::create("BruteForce"); //欧氏距离

    13210

    OpenCV09-模糊(一)

    09-模糊(一) 模糊原 Smooth/Blur是中最简单和常用的操作之一 使用该操作的目的之一是为了在时降低噪声 使用Smooth/Blur操作背后的数学卷积计算是 通常这些卷积算子计算都是线性操作,故又叫做线性滤波 均值滤波原 image.png 相关API 代码演示 #include<opencv2/opencv.hpp> #include<iostream

    10510

    OpenCV10-模糊(二)

    10-模糊(二) 中值滤波和双边滤波 中值滤波 统计排序滤波器 中值滤波对于椒盐噪声有很好的抑制作用 原是:将Size(xradius,yradius)窗口中的素值排序,取中值赋给窗口中心点 双边滤波 均值滤波无法客服边缘素信息丢失的缺陷,原因是均值滤波基于平均权重 高斯滤波部分克服了该缺陷,但仍无法完全避免,因为没有考虑到素值的不同 高斯双边模糊是保留边缘的滤波方法,避免了边缘信息的丢失 ,能够保证轮廓不变 相关API 代码演示 #include<opencv2/opencv.hpp> #include<iostream> using namespace std; using namespace

    11210

    Python-OpenCV (七):灰度化

    为了加快速度,在算法中,往往需要把彩色转换为灰度。 0x00. 灰度 灰度数字是每个素只有一个采样颜色的,这类通常显示为从最暗黑色到最亮的白色的灰度。 灰度与黑白不同,在计算机领域中黑白只有黑白两种颜色,灰度在黑色与白色之间还有许多级的颜色深度。 分量法 将彩色中的三分量的亮度作为三个灰度的灰度值,可根据应用需要选取一种灰度。 最大值法 将彩色中的三分量亮度的最大值作为灰度的灰度值。 由于人眼对绿色的敏感最高,对蓝色敏感最低,因此,按下式对RGB三分量进行加权平均能得到较合的灰度

    3.7K10

    Python-OpenCV (三):素点操作

    素 有两种直接操作素点的方法: 第一种办法就是将一张片看成一个多维的list,例如对于一张片im,想要操作第四行第四列的素点就直接 im[3,3] 就可以获取到这个点的RGB值。 批量 需要批量所有的素点的时候,只需要使用for循环迭代就可以了: import cv2.cv as cv im = cv.LoadImage("img/lena.jpg") for i in range(im.height): for j in range(im.width): im[i,j] # 这里可以每个素点 还有一种迭代的方式是使用 LineIterator ,不过在声明 LineIterator 的时候需要制定素点的开始点和结束点。 r g b 进行 娱乐一下, 随机获取 5000 个素点,然后把颜色换成一个随机的值(salt): import cv2.cv as cv import random # 这里也可以使用 Get2D

    1.6K20

    OpenCV(十)

    本章节的主要内容是对之前分享的OpenCV模块进行一个总结。 ---- 第一期主要内容: 1、视频实时读写显示 2、变换 3、卷积增强和滤波去燥 是利用计算机对进行去噪、增强、复原、重建、编码、压缩、几何变换、分割,提取特征等的中,输入的是低质量的,输出的是改善质量后的。 二值的腐蚀和膨胀就是将一个结构元素(小型二值,一般为3*3大小)在一个大的二值上逐点移动并进行比较,根据比较的结果作出相应而已。 对每个block的descriptor做归一化,常见的归一化为L2-norm或者L1-norm将image内的所有归一化的block的HOG特征descriptor串联起来就可以得到该image

    44620

    OpenCV(九)

    本章节的主要内容是:基于Python和OpenCV的DNN深度学习模块进行实时人脸检测。 以下代码均在python3.6,opencv4.2.0环境下试了跑一遍,可直接运行。 int(round(frameHeight/150)), 8) return frameOpencvDnn, bboxes if __name__ == "__main__" : # OpenCV tt_opencvDnn += time.time() - t fpsOpencvDnn = frame_count / tt_opencvDnn label = "OpenCV

    27740

    OpenCV(七)

    ---- 1、基于OpenCV中自带的HOG的行人检测分类器,实现行人检测 # *_*coding:utf-8 *_* import cv2 import numpy as np img = cv2. person.jpg') hog = cv2.HOGDescriptor() hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector()) #使用opencv 2、基于OpenCV中自带的Haar的人脸检测分类器,实现人脸人眼检测 1)人脸检测 # -*- coding: utf-8 -*- import cv2 import numpy as np face_cascade 3、基于OpenCV中自带的LBP的人脸检测分类器,实现人脸检测 # -*- coding: utf-8 -*- import cv2 import numpy as np face_cascade

    14620

    OpenCV(一)

    本章节主要是基础操作,主要包括以下几点内容: 1、视频读取显示保存 2、变换 3、卷积增强和滤波去燥 以下代码均在python3.6,opencv4.2.0环境下试了跑一遍,可直接运行 ---- 1、视频读取显示保存 1)读取路径下的并显示,完整代码如下: # -*- coding: utf-8 -*- import cv2 import numpy as np # 片路径 ---- 2、变换 主要包括: 获取的高和宽; 将变为原来的2倍; 水平翻转180度; 垂直翻转180度; 水平垂直同时翻转; 绕着某一点的旋转; 调整亮度与对比度; 完整代码如下: ---- 3、卷积增强和滤波去燥 主要包括: 直方均衡化; 高斯去燥; 均值滤波; 中值滤波; 完整代码如下: # -*- coding: utf-8 -*- import cv2 import :作用是增强,对比度增强。

    34230

    OpenCV(六)

    本章节的主要内容是:基于Python和OpenCV编写HOG+SVM算法实现行人检测。 以下代码均在python3.6,opencv4.2.0环境下试了跑一遍,可直接运行。 而检测时,则使用训练好的模型来识别滑动窗口中的ROI,也可以设置多尺寸,即使用滑动窗口中的ROI的金字塔,对多尺寸进行检测。 1、代码结构: ? import sys import cv2 import logging import numpy as np def logger_init(): ''' 自定义python的日志信息打印置 logging.StreamHandler(sys.stdout) console_handler.formatter = formatter # 也可以直接给formatter赋值 # 为logger添加的日志器 的hogdescriptor中的svm不能直接用opencv的svm模型,而是要导出对应格式的数组) ''' logger.info('Configuring SVM classifier

    27320

    OpenCV(四)

    ---- 1、霍夫变换介绍 霍夫变换(Hough Transform)是中的一种特征提取技术,该过程在一个參数空间中通过计算累计结果的局部最大值得到一个符合该特定形状的集合作为霍夫变换结果。 霍夫变换通过把的坐标从2D平面坐标系变换到极坐标空间,可以发现原来在平面坐标难以提取的几何特征信息(如:直线、圆等),的直线与圆检测就是典型的利用霍夫空间特性实现二值几何分析的例子。 ---- 3、霍夫圆检测:cv2.HoughCircles() 假设平面坐标的任意一个圆上的点C,转换到极坐标中,在点C有最大值,霍夫变换正是利用这个原实现圆的检测。 霍夫圆检测对噪声比较敏感,所以首先要对做中值滤波,也可用高斯滤波,视噪声类型而定,具体可见模糊。 基于效率考虑,Opencv中实现的霍夫变换圆检测是基于梯度的实现,分为两步: (1)检测边缘,发现可能的圆心。 (2)基于第一步的基础上从候选圆心开始计算最佳半径大小。

    15320

    相关产品

    • 图像分析

      图像分析

      腾讯云图像分析基于深度学习等人工智能技术,提供综合性图像理解、图像处理、图像质量评估等服务,包含图像标签、logo识别、动漫人物识别、植物识别等,可以用于智能相册、视频理解、AI营销等场景…..

    相关资讯

    热门标签

    扫码关注云+社区

    领取腾讯云代金券