OpenCV
zhuyong006
这个作者很懒,什么都没留下…
展开
-
OpenCV读取UsbCam的图像
源码:import cv2 as cvimport numpy as npdef video_demo(): capture = cv.VideoCapture(0) while(True): ret, frame = capture.read() frame = cv.flip(frame, 1) cv.imshow("vi...原创 2018-12-19 15:26:15 · 917 阅读 · 0 评论 -
openCV之中值滤波&均值滤波(及代码实现)
原帖出处: 在开始我们今天的博客之前,我们需要先了解一下什么是滤波:首先我们看一下图像滤波的概念。图像滤波,即在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,是图像预处理中不可缺少的操作,其处理效果的好坏将直接影响到后续图像处理和分析的有效性和可靠性。下图左边是原图右边是噪声图:消除图像中的噪声成分叫作图像的平滑化或滤波操作。信号或图像的能量大部分集中在幅度谱的低频和中频段是很常...转载 2019-03-14 18:55:59 · 7249 阅读 · 1 评论 -
python-opencv 图像二值化,自适应阈值处理
原帖地址:定义:图像的二值化,就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果。 一幅图像包括目标物体、背景还有噪声,要想从多值的数字图像中直接提取出目标物体,常用的方法就是设定一个阈值T,用T将图像的数据分成两部分:大于T的像素群和小于T的像素群。这是研究灰度变换的最...转载 2019-03-24 21:08:48 · 5183 阅读 · 0 评论 -
opencv函数介绍—normalize
1.函数原型void cv::normalize(InputArry src,InputOutputArray dst,double alpha=1,double beta=0,int norm_type=NORM_L2,int dtype=-1,InputArray mark=noArry())2.函数作用归一化数据。该函数分为范围归一化与数据值归一化。(Normalizes the n...转载 2019-04-04 14:54:59 · 668 阅读 · 0 评论 -
OpenCV---模板匹配
C++: void matchTemplate(InputArray image, InputArray temp, OutputArray result, int method)Parameters image – Image where the search is running. It must be 8-bit or 32-bit floating-point....转载 2019-04-04 15:38:49 · 202 阅读 · 0 评论 -
opencv人脸检测_Haar特征分类器实现人脸检测_cascade.detectMultiScale参数详解
原帖地址:1. 概述CascadeClassifier为OpenCV中cv namespace下用来做目标检测的级联分类器的一个类。该类中封装的目标检测机制,简而言之是滑动窗口机制+级联分类器的方式2. 支持的特征 对于Haar、LBP和HOG,CascadeClassifier都有自己想对他们说的话: 1) Haar:因为之前从OpenCV1.0以来,一直都是只有用haar特...转载 2019-04-10 11:37:36 · 1472 阅读 · 0 评论 -
OpenCV---轮廓发现
原帖地址:轮廓发现---是基于图像边缘提取的基础寻找对象轮廓的方法,所有边缘提取的阈值选定会影响最终轮廓发现的结果。介绍两种API使用:-cv.findContours 发现轮廓-cv.drawContours 绘制轮廓 *利用梯度避免阈值烦恼效果图:使用边缘Canny()提取边缘高斯模糊+灰度+全局阈值--->二值化图像 代码:import...转载 2019-04-07 16:13:32 · 852 阅读 · 0 评论 -
findContours函数参数详解
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/dcrmg/article/details/51987348 注: 这篇文章用的OpenCV版本是2.4.10, 3以上的OpenCV版本相关函数可能有改动Opencv中通过使用findContours函数,简单几个的步骤就可以检测出物体的轮廓,很方便。这些准备继续探讨一下findCo...转载 2019-04-07 21:34:36 · 545 阅读 · 0 评论 -
Opencv轮廓矩【判断形态方向、匹配度】
轮廓矩原理部分:矩一、概率论上的定义 看到矩这个字,很容易联想到概率论,在概率论中,定义如下:或者说:设 X 和 Y 是随机变量,c 为常数,k 为正整数, 如果E(|X−c|^k)E(|X−c|^k)存在,则称E(|X−c|^k)E(|X−c|^k)为 X 关于点 c 的 k 阶矩。c = 0 时, 称为 k 阶原点矩; c = E(x) 时,称为 k ...转载 2019-04-07 23:19:59 · 1224 阅读 · 0 评论 -
使用OpenCV4Android打开相机
源码:package com.sunmi.opencv.camera;import android.Manifest;import android.os.Build;import android.os.Bundle;import android.support.design.widget.FloatingActionButton;import android.support.desi...原创 2019-04-11 16:29:00 · 728 阅读 · 5 评论 -
OpenCV approxPolyDP()函数详解
CV_EXPORTS_W void approxPolyDP( InputArray curve,OutputArray approxCurve,double epsilon, bool closed );@param curve Input vector of a 2D point stored in std::vector or Mat@param approxCurve Result o...转载 2019-04-08 11:03:19 · 3227 阅读 · 0 评论 -
AndroidOpenCV摄像头预览旋转90度问题
将下图文件中的 deliverAndDrawFrame 方法修改为: protected void deliverAndDrawFrame(CvCameraViewFrame frame) { Mat modified; if (mListener != null) { modified = mListener.onCamer...原创 2019-04-11 16:54:13 · 1549 阅读 · 0 评论 -
AndroidOpenCV摄像头预览全屏问题
直接贴代码 @Override public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) { Mat dst = inputFrame.rgba(); //Log.e(TAG,"orientation : " + this.getRequestedOrien...原创 2019-04-15 20:04:51 · 1442 阅读 · 0 评论 -
OpenCV相机帧率低以及花屏问题
使用OpenCV原生的JavaCamera2View打开相机,发现相机帧率非常的低,只有3-4帧,而且色彩也不对。1.帧率低的解决方案:这个问题的原因在于OpenCV在设置预览长宽的时候,首先是获取相机支持的最大尺寸,以这个尺寸作为基准和connect_camera的API传进来的View的长宽做条件匹配,如果View的长宽不满足OpenCV的要求,那么会直接使用相机的最大输出尺寸进行预览,而...原创 2019-04-21 16:21:34 · 4886 阅读 · 0 评论 -
Android4OpenCV实时人脸检测detectMultiScale报错
我使用的OpenCV的SDK是343的版本发现在NDK编译的时候出错,网上查了下是由于OpenCV官方编译的动态库libopencv_java3.so编译的flags和studio不一致,导致无法使用,最简单的办法是直接使用OpenCV最新的SDK,当前是4.0的版本即可。除此之外,还需要做如下的更改:apply plugin: 'com.android.application'androi...原创 2019-04-17 19:30:32 · 481 阅读 · 0 评论 -
OpenCV 文字绘制——cv::putText详解
原帖地址:opencv中除了提供绘制各种图形的函数外,还提供了一个特殊的绘制函数——在图像上绘制文字。这个函数即是cv::putText()。具体形式如下: void cv::putText( cv::Mat& img, // 待绘制的图像 const string& text, // 待绘制的文字 cv::Point origin, // 文本框的左下角 ...转载 2019-05-02 17:55:20 · 5236 阅读 · 0 评论 -
OpenCV---圆检测
OpenCV—圆检测 推文:Opencv2.4.9源码分析——HoughCircles 霍夫圆检测加载一幅图像并对其模糊化以降噪对模糊化后的图像执行霍夫圆变换 .在窗体中显示检测到的圆.def detect_circle_demo(image): # dst = cv.bilateralFilter(image, 0, ...转载 2019-02-18 12:00:24 · 4523 阅读 · 0 评论 -
OpenCV---直线检测
 直线检测相关Opencv学习笔记-----霍夫变换直线检测及原理理解OpenCV-Python教程(9、使用霍夫变换检测直线)Hough变换是经典的检测直线的算法。其最初用来检测图像中的直线,同时也可以将其扩展,以用来检测图像中简单的结构。变换图示霍夫直线检测的两种方法1.获取灰度图像2.canny边缘检测3.获取霍夫直线信息4.算出直线位置,画出每条直线...转载 2019-01-29 17:38:51 · 2366 阅读 · 0 评论 -
OpenCV处理椒盐噪声以及提高对比度
1.通过中值模糊处理椒盐噪声源码:import cv2 as cvdef median_blur_demo(image): dst = cv.medianBlur(image, 5) cv.imshow("median_blur_demo", dst)src = cv.imread("/home/jon/opencv-python-picture/lenanoise.p...原创 2018-12-24 14:32:30 · 3649 阅读 · 0 评论 -
Ubuntu 16.04下安装激活pycharm 2018.3版本
1 去官网下载Linux 版的pycharm压缩包 https://www.jetbrains.com/pycharm/download/#section=linux 直接点击2 解压到当前文件夹,Ubuntu也有解压功能,右键即可看到。3 开始通过命令行进行安装了$ cd 下载/pycharm-2018.3/bin$ sh ./pycharm.sh(通过sh命令进行安装)等待一...原创 2018-12-19 10:21:00 · 4432 阅读 · 0 评论 -
Ubuntu16.04下安装opencv-3.3.0
1 . 下载opencv-3.3.02 . 编译安装cd opencv-3.2.0执行如下命令:cmake .#注意:不要弄成cmake/ .3 . 执行如下指令mkdir buildcd buildcmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D ...原创 2018-12-19 11:28:18 · 745 阅读 · 0 评论 -
OpenCV读取一张图片,并将其转换为灰度图像显示
源码:import cv2 as cvimport numpy as npdef get_imgage_info(image): print(type(image)) print(image.shape) print(image.size) print(image.dtype) pix_data = np.array(image) print...原创 2018-12-19 12:43:08 · 5265 阅读 · 0 评论 -
OpenCV利用高斯模糊可以实现毛玻璃的特效
1.理论知识先看伟大的高斯分布(Gaussian Distribution)的概率密度函数(probability density function): Gaussian Distribution(Normal Distribution)其图形特点为中间高,两头低,是钟形曲线(bell-shaped curve)。在高斯分布中,以数学期望μ表示钟型的中心位置(也即曲线的位置),而标准差(st...原创 2019-01-02 18:34:56 · 625 阅读 · 0 评论 -
OpenCV 图像直方图计算calcHist()
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/keith_bb/article/details/56680997 图像直方图是对数据集合的一种统计方法,将统计结果分布于一系列预定义的bin中,bin是直方图中经常用到的一个概念,其数值是从数据中计算出的特征统计量,这些数据不仅仅指的灰度值,统计数据可能是任何能有效描述图像的特...转载 2019-01-07 11:32:49 · 1589 阅读 · 0 评论 -
OpenCV双边滤波解决实现图像的美白
bilateral filter双边滤波器的通俗理解 图像去噪的方法很多,如中值滤波,高斯滤波,维纳滤波等等。但这些降噪方法容易模糊图片的边缘细节,对于高频细节的保护效果并不明显。相比较而言,bilateral filter双边滤波器可以很好的边缘保护,即可以在去噪的同时,保护图像的边缘特性。双边滤波(Bilateral filter)是一种非线性的滤波方法,是结合图像的空间邻近度和像素值...原创 2019-01-03 10:37:04 · 3273 阅读 · 0 评论 -
OpenCV中对模糊操作的总结
三种模糊操作均值模糊 中值模糊自定义模糊(可以实现上面两种模糊方式) 这个算法类似有:均值,中值,就是取周围所有像素的均值、中值来设置这个像素的大小。 (关于边界问题:有几种填充方法:补零、边界复制、块复制、镜像复制等方法)原理图像处理:基础(模板、卷积运算) 图像处理-模板、卷积的整理基于离散卷积定义好每个卷积核不同卷积核得到不同的卷积效...转载 2019-01-03 11:10:09 · 4244 阅读 · 0 评论 -
OpenCV图像直方图案例
直方图一、直接使用直方图 1 import matplotlib.pyplot as plt 2 import cv2 as cv 3 def plot_demo(image): 4 print(image.ravel()) ##ravel将图像3维转一维数组,便于统计频率 5 # 统计为256个bin,直方图显示[0,256]所有的bin,意思是全部显示,...转载 2019-01-21 14:26:51 · 1025 阅读 · 0 评论 -
OpenCV之模板匹配案例
1、模板匹配通俗讲就是以图找图,通过图中的一部分来找它在图中的位置(模板匹配就是在整个图像区域发现与给定子图像匹配的小块区域)。模板匹配是一种最原始、最基本的模式识别方法,研究某一特定对象物的图案位于图像的什么地方,进而识别对象物,这就是一个匹配问题。它是图像处理中最基本、最常用的匹配方法。2、作用有局限性必须在指定的环境下,才能匹配成功,是受到很多因素的影响,所以有一定的适应性模板匹配...转载 2019-01-21 14:44:09 · 1860 阅读 · 1 评论 -
OpenCV之图像二值化
一、什么是二值图像彩色图像:三个通道0-255,0-255,0-255,所以可以有2^24位空间灰度图像:一个通道0-255,所以有256种颜色二值图像:只有两种颜色,黑和白,1白色,0黑色二、图像二值化1、获取阈值2、根据阈值去二值化图像方法三、全局阈值1、函数threshold函数(固定阈值门限分割)(1)OpenC的threshold函数进行全局阈值。thre...转载 2019-01-21 15:22:06 · 3268 阅读 · 0 评论 -
超大图像的二值化方法
超大图像的二值化方法1.可以采用分块方法,2.先缩放处理就行二值化,然后还原大小一:分块处理超大图像的二值化问题def big_image_binary(image): print(image.shape) #(4208, 2368, 3) #超大图像,屏幕无法显示完整 cw,ch = 256,256 h,w = image.shape[:2] gr...转载 2019-01-26 13:59:50 · 424 阅读 · 0 评论 -
图像金字塔原理
原帖地址:图像金字塔原理(一)图像缩小(先高斯模糊,再降采样,需要一次次重复,不能一次到底)(二)图像扩大(先扩大,再卷积或者使用拉普拉斯金字塔)图像金字塔介绍图像金字塔是图像中多尺度表达的一种,最主要用于图像的分割,是一种以多分辨率来解释图像的有效但概念简单的结构。简单来说,图像金字塔就是用来进行图像缩放的。进行图像缩放可以用图像金字塔,也可以使用resize函数进行缩放,...转载 2019-01-27 21:38:37 · 1655 阅读 · 0 评论 -
OpenCV---图像梯度
图像梯度推文:【OpenCV入门教程之十二】OpenCV边缘检测:Canny算子,Sobel算子,Laplace算子,Scharr滤波器合辑图像梯度可以把图像看成二维离散函数,图像梯度其实就是这个二维离散函数的求导。Sobel算子是普通一阶差分,是基于寻找梯度强度。拉普拉斯算子(二阶差分)是基于过零点检测。通过计算梯度,设置阀值,得到边缘图像。 一:sobel算子def...转载 2019-01-29 16:56:23 · 560 阅读 · 0 评论 -
OpenCV---Canny边缘提取
一:Canny算法介绍Canny 的目标是找到一个最优的边缘检测算法,最优边缘检测的含义是:好的检测- 算法能够尽可能多地标识出图像中的实际边缘。好的定位- 标识出的边缘要尽可能与实际图像中的实际边缘尽可能接近。最小响应- 图像中的边缘只能标识一次,并且可能存在的图像噪声不应标识为边缘。推文:Canny边缘检测算法原理及其VC实现详解(一)1.高斯模糊--GaussianBlur...转载 2019-01-29 17:07:29 · 2935 阅读 · 0 评论 -
OpenCV如何提取人眼区域的眼球位置
待检测图像:期望的检测结果如下:代码实现如下:第一步先将原图像转换为灰度图像,然后来个二值化#coding=utf-8import cv2 as cvimport numpy as npsrc = cv.imread("/home/jon/code/python/img/eye_area.jpg")gray = cv.cvtColor(src, cv.COLOR_BGR2GR...原创 2019-04-25 16:19:05 · 4705 阅读 · 0 评论