OpenCv
文章平均质量分 81
wzw12315
这个作者很懒,什么都没留下…
展开
-
OpenCV图像中关于坐标转换的问题
在图像处理中,经常需要对图像内的一些轮廓进行特殊处理,这时候可能需要使用坐标转换功能。例如下面的轮廓中,在找到最小外接矩形后,就需要对轮廓已最小外接矩形的坐标进行处理。在一幅图像的坐标系中,通常将左上角坐标作为原点(0,0),水平向右和垂直向下的方向分别为x轴和y轴的正方向,称为 XY 坐标系。现以最小 外 接 矩 的 一 个 顶 点 为 坐 标 原 点,两条垂直邻边为坐 标 轴 建 立 新 坐 标 系,称为 AB坐标系。两个坐标系平移和旋转的变化关系如图所示:如上图所示,在 AB坐标系内原创 2021-02-04 11:24:07 · 4854 阅读 · 5 评论 -
Python+OpenCV教程:Matplotlib显示图像
OpenCV中的图像是以BGR的通道顺序存储的,但Matplotlib是以RGB模式显示的,所以直接在Matplotlib中显示OpenCV图像会出现问题,因此需要转换一下:import cv2import matplotlib.pyplot as pltimg = cv2.imread('lena.jpg')img2 = img[:, :, ::-1]# 或使用# img...原创 2020-05-07 14:00:01 · 392 阅读 · 0 评论 -
Python+OpenCV教程17:霍夫变换
目标理解霍夫变换的实现 分别使用霍夫线变换和圆变换检测图像中的直线和圆 OpenCV函数:cv2.HoughLines(), cv2.HoughLinesP(), cv2.HoughCircles()教程理解霍夫变换霍夫变换常用来在图像中提取直线和圆等几何形状,实现原理在维基百科上解释的非常清楚:Hough transform,我来做个简易的解释,感兴趣的可以一看,否则划掉(●ˇ...原创 2020-05-07 15:06:24 · 322 阅读 · 0 评论 -
Python OpenCV 裁剪身份证正反面
银行业务经常采集的身份证复印件如上图所示,有时候进行某项深度学习业务时,比如文字识别之类,可能需要把身份证的正反面裁剪下来作为训练样本,裁剪demo代码如下所示:# -*- coding: utf-8 -*-# @Time : # @Author : # @Reference : None# @File : cut_t...原创 2020-05-07 15:11:15 · 6955 阅读 · 1 评论 -
图像矫正 + 文本矫正 技术深入探讨
刚进入实验室导师就交给我一个任务,就是让我设计算法给图像进行矫正。哎呀,我不太会图像这块啊,不过还是接下来了,硬着头皮开干吧!那什么是图像的矫正呢?举个例子就好明白了。我的好朋友小明给我拍了这几张照片,因为他的拍照技术不咋地,照片都拍得歪歪扭扭的,比如下面这些照片:人民币发票文本这些图片让人看得真不舒服!看个图片还要歪脖子看,实在是太烦人了!我叫小明帮我扫描一下一本教科书,...原创 2020-05-07 15:12:49 · 3155 阅读 · 1 评论 -
OpenCV:如何去除票据上的印章
最近在做票据识别的编码工作时遇到一些问题,就是票据上往往会有一些红色印章把一些重要信息区域给覆盖了,比如一些开发票人员盖印章时比较随意,容易吧一些关键区域给遮蔽了,这让接下来的票据识别很困难,因此,我们必须先对票据图像进行一定的预处理来移除印章干扰,再进行字符识别,这样子识别准确率才有保证。我们从简单例子说起,比如我们有以下一张票据,上面盖有红色印章,虽然该印章没有遮挡关键信息,但...原创 2020-05-07 15:13:05 · 1816 阅读 · 1 评论 -
简单总结一下图像处理中概念
二值化两种方法,全局固定阈值二值化和局部自适应阈值二值化全局固定阈值很容易理解,就是对整幅图像都是用一个统一的阈值来进行二值化;局部自适应阈值则是根据像素的邻域块的像素值分布来确定该像素位置上的二值化阈值。离散傅里叶变换图像高频部分代表了图像的细节、纹理信息;低频代表了图像的轮廓信息。低通-》模糊 高通-》锐化 腐蚀和膨胀是针对白色部分(高亮部分)而言的。膨胀就是对图像高亮...原创 2020-05-07 15:12:33 · 285 阅读 · 0 评论 -
opencv学习笔记之十五——最小外接矩形(RotatedRect返回角度angle问题)
https://blog.csdn.net/weixin_40647819/article/details/80884594转载 2020-05-06 10:08:16 · 823 阅读 · 0 评论 -
[Python图像处理] 二十.图像量化处理和采样处理及局部马赛克特效
https://blog.csdn.net/Eastmount/article/details/89287543转载 2020-03-25 15:11:20 · 355 阅读 · 0 评论 -
Python+OpenCV教程16:模板匹配
目标使用模板匹配在图像中寻找物体 OpenCV函数:cv2.matchTemplate(), cv2.minMaxLoc()教程模板匹配模板匹配就是用来在大图中找小图,也就是说在一副图像中寻找另外一张模板图像的位置:用cv2.matchTemplate()实现模板匹配。首先我们来读入图片和模板:img = cv2.imread('lena.jpg', 0)te...原创 2020-05-07 14:56:27 · 763 阅读 · 0 评论 -
Python+OpenCV教程13:轮廓
目标了解轮廓概念 寻找并绘制轮廓 OpenCV函数:cv2.findContours(), cv2.drawContours()教程啥叫轮廓轮廓是一系列相连的点组成的曲线,代表了物体的基本外形。谈起轮廓不免想到边缘,它们确实很像。简单的说,轮廓是连续的,边缘并不全都连续(下图)。其实边缘主要是作为图像的特征使用,比如可以用边缘特征可以区分脸和手,而轮廓主要用来分析物体的形态,...原创 2020-05-07 14:45:04 · 351 阅读 · 0 评论 -
Python+OpenCV教程15:直方图
目标计算并绘制直方图 (自适应)直方图均衡化 OpenCV函数:cv2.calcHist(), cv2.equalizeHist()教程啥叫直方图直方图简单来说就是图像中每个像素值的个数统计,比如说一副灰度图中像素值为0的有多少个,1的多少个……直方图是一种分析图片的手段:在计算直方图之前,有几个术语先来了解一下:dims:要计算的通道数,对于灰度图dims=1 r...原创 2020-05-07 14:42:01 · 227 阅读 · 0 评论 -
Python+OpenCV教程9:凸包及更多轮廓特征
计算凸包及更多轮廓特征。图片等可到源码处下载。多边形逼近前面我们学习过最小外接矩和最小外接圆,那么可以用一个最小的多边形包围物体吗?当然可以:# 1.先找到轮廓img = cv2.imread('unregular.jpg', 0)_, thresh = cv2.threshold(img, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OT...原创 2020-05-07 14:30:09 · 878 阅读 · 0 评论 -
Python+OpenCV教程4:Otsu阈值法
大部分图像处理任务都需要先二值化操作,所以阈值的选取很关键,Otsu阈值法会自动计算阈值。Otsu阈值法(日本人提出的,也可以叫大津算法)会自动计算阈值,它适用于双峰图片,啥意思呢?什么是双峰图片?双峰图片就是指图片的灰度直方图上有两个峰值,直方图就是每个值(0~255)的像素点个数统计,如黑色点0有多少个等等,后面会详细介绍。Otsu算法假设这副图片由前景色和背景色组成,通过...原创 2020-05-07 14:08:09 · 1326 阅读 · 0 评论 -
Python+OpenCV教程6:阈值分割
目标使用固定阈值、自适应阈值和Otsu阈值法"二值化"图像 OpenCV函数:cv2.threshold(), cv2.adaptiveThreshold()教程固定阈值分割固定阈值分割很直接,一句话说就是像素点值大于阈值一个值,小于阈值是另外一个值。import cv2import matplotlib.pyplot as plt# 灰度图读入img = ...原创 2020-05-07 14:02:06 · 1599 阅读 · 0 评论 -
Python+OpenCV教程5:颜色空间转换 追踪视频中特定颜色的物体 消除票据中的红色印章
目标颜色空间转换,如BGR↔Gray,BGR↔HSV等 追踪视频中特定颜色的物体 OpenCV函数:cv2.cvtColor(),cv2.inRange()教程颜色空间转换import cv2import numpy as npimg = cv2.imread('lena.jpg')# 转换为灰度图img_gray = cv2.cvtColor(img, cv2...原创 2020-05-07 14:01:17 · 1433 阅读 · 0 评论 -
Python+OpenCV教程4:图像基本操作
目标访问和修改图片像素点的值 获取图片的宽、高、通道数等属性 了解感兴趣区域ROI 分离和合并图像通道教程获取和修改像素点值我们先读入一张图片:import cv2img = cv2.imread('lena.jpg')通过行列的坐标来获取某像素点的值,对于彩色图,这个值是B,G,R三个值的列表,对于灰度图,只有一个值:px = img[100...原创 2020-05-07 14:00:16 · 552 阅读 · 0 评论 -
Python+OpenCV教程3:滑动条
目标创建和使用滑动条 OpenCV函数:cv2.createTrackbar(), cv2.getTrackbarPos()教程滑动条的使用首先我们需要创建一个滑动条,如cv2.createTrackbar('R','image',0,255,call_back),其中参数1:滑动条的名称 参数2:所在窗口的名称 参数3:当前的值 参数4:最大值 参数5:回调函数名称,...原创 2020-05-07 13:59:38 · 792 阅读 · 0 评论 -
OpenCV: Equivalent to Matlab’s conv2() function
OpenCV: Equivalent to Matlab’s conv2() functionhttp://blog.timmlinder.com/2011/07/opencv-equivalent-to-matlabs-conv2-function/原创 2014-12-08 14:59:10 · 1069 阅读 · 0 评论 -
OpenCv笔记一:Mat
1、Luckily C++ came around and introduced the concept of classes making possible to build another road for the user:automatic memory management (more or less).原创 2014-11-14 16:24:13 · 642 阅读 · 0 评论