opencv-python图像处理
文章平均质量分 73
一些关于opencv的常用操作
__山顶洞人__
这个作者很懒,什么都没留下…
展开
-
opencv中的dnn模块
1.1. DNN模块简介OpenCV中的深度学习模块(DNN)只提供了推理功能,不涉及模型的训练,支持多种深度学习框架,比如TensorFlow,Caffe,Torch和Darknet。OpenCV为什么要实现深度学习模块? 轻量型。DNN模块只实现了推理功能,代码量及编译运行开销远小于其他深度学习模型框架。 使用方便。DNN模块提供了内建的CPU和GPU加速,无需依赖第三方库,若项目中之前使用了OpenCV,那么通过DNN模块可以很方便的为原项目添加深度学习的能力。原创 2021-03-16 17:30:56 · 7894 阅读 · 1 评论 -
imutils工具库使用
1.imutils功能简介imutils是在OPenCV基础上的一个封装,达到更为简结的调用OPenCV接口的目的,它可以轻松的实现图像的平移,旋转,缩放,骨架化等一系列的操作。安装方法:pip install imutils在安装前应确认已安装numpy,scipy,matplotlib和opencv。2.imutils的使用方法2.1 图像平移OpenCV中也提供了图像平移的实现,要先计算平移矩阵,然后利用仿射变换实现平移,在imutils中可直接进行图像的平移。tr原创 2021-03-15 20:49:28 · 3860 阅读 · 1 评论 -
华为街景语义分割数据集json文件转换为label标签
今天遇见了一个复杂的问题。华为语义分割街景数据集给的是json文件,并非已经生成的label图片。刚开始不知道怎么搞,想通过cityscapes数据集的cityscapesScripts-master工具制作,但是捣鼓半天未果。于是想没有轮子自己造呗。。。。。。呃呃呃,难受不扯别的看下图,你会发现其实,json文件里面是一个字典,自定里面最重要的就是红框里面的的东西,包含了每一个物体的外接封闭多边形的顶点坐标,如果不理解这句话多读几遍。我们的目标就是生成一幅图像,让这些封闭区域内都填充相应的目标值原创 2021-01-03 21:40:06 · 1386 阅读 · 14 评论 -
opencv 提取图像中的面积最大的轮廓外接矩形
前言:一个很实在的栗子:假设我们在图像分割为一幅2值图像,图像里不能保证每个像素点的正确分类,但是总体分割效果还算ok。分割图像里存在噪声点,例如图一,图中最大的空白区域为我们想要得到的区域,那些比较小的奇形怪状的小白区域可以理解为图像分割中的一些分割错误的噪声点,我们想把我们的最大区域单独从图像里扣出来,如图二。 图一 ...原创 2020-10-10 16:57:12 · 20902 阅读 · 11 评论 -
opencv 图像垂直翻转
import cv2import glob_dir = glob.glob('./*.jpg') n = 0for i in _dir: img = cv2.imread(i) if img.shape[0] > img.shape[1]: trans_img = cv2.transpose(img) new_img = cv2.flip(trans_img, 1) cv2.imwrite('./r/'+str(n)+'.原创 2020-10-09 21:07:43 · 393 阅读 · 0 评论 -
OpenCv图像处理——中值滤波
中值滤波原理中值滤波属于非线性平滑滤波。中值为一组数x1, x2, …, xn ,把n个数按值的大小顺序排列如下: 中值y噪声的出现,使被处理点像素比周围像素亮(暗)许多。以被处理点为中心,选取一个邻域窗口,窗口内所有点值排序,取中值代替该点值。例如:代码实现import cv2lena_noise = cv2.imread("lenaNoise...原创 2020-01-01 12:19:24 · 739 阅读 · 0 评论 -
OpenCv图像处理——方框滤波
方框滤波原理利用opencv的boxFilter函数:处理结果 = cv2.boxFliter(原始图像, 目标图像深度, 核大小, normalize)目标图像深度:一般情况下我们将目标图像深度设置为-1,表示与原始图像一致。核大小:方框滤波的方框的行数和列数。normalize:是否对目标图像进行归一化操作。当normalize = 1时,表示要进行归一化操作,此时...原创 2020-01-01 11:43:20 · 1135 阅读 · 0 评论 -
OpenCv图像处理——高斯滤波
高斯滤波原理以某一像素为中心,在它的周围选择一个局部邻域,把邻域内像素的灰度按照高斯正态分布曲线进行统计,分配相应的权值系数,然后将邻域内所有点的加权平均值代替原像素值。其中,k, l是根据所选邻域大小确定。二维高斯函数图: 正态分布曲线为钟形形状;表明:离中心原点越近,高斯函数取值越大。正态分布常被用来进行权值分配。理解高斯滤波可以参...原创 2019-12-31 21:50:00 · 898 阅读 · 0 评论 -
OpenCv图像处理——均值滤波
均值滤波原理以某一像素为中心,在它的周围选择一邻域,将邻域内所有点的均值(灰度值相加求平均)来代替原来像素值。S:点(x,y)为中心的邻域;M:邻域S内总像素数目 如此以此类推直到如下:边界像素处理??通常边界像素有两种处理方法:1.不进行处理,保留原值。2.在这些像素周围构建邻域,例如重复边界像素,然后再进行处理。效果分析:若邻域内存在...原创 2019-12-31 19:04:41 · 1539 阅读 · 1 评论 -
OpenCv图像处理——数字水印
前言在一幅数字图像中最低有效位是指构成一个像素点的灰度值的二进制数的第0位,由于第0位的数值在图像的显示上面往往作用非常小,所含能量非常小,因此我们可以利用该性质,在数字图像的最低位加入需要隐藏的信息,该信息称之为数字水印。数字水印的信息类型可以有很多种比如,文本、视频、音频二值图像等等。为了研究方便本文讨论数字水印为二值图像的情况。实现过程1、预处理隐藏信息首先将需要加密的图像进...原创 2019-12-05 23:20:26 · 3669 阅读 · 0 评论 -
OpenCv图像处理——图像加密和解密
一般情况下,图像的加密和解密过程是通过按位异或运算实现的。将原始图像与密钥图像进行按位异或,可以实现加密,将加密后的图像与密钥图像再进行按位异或可以实现解密过程。一、基本原理按位异或运算的基本规则如下表:算子1 算子2 结果 规则 0 0 0 xor(0, 0) = 0 0 1 1 xor(0, 1) = 1 1 ...原创 2019-12-05 15:21:50 · 6076 阅读 · 1 评论 -
OpenCv图像处理——位平面分解
图像的位平面分解一般分为5个步骤:1.图片预处理2.构造提取矩阵3.提取位平面4.阈值处理5.显示图像以灰度图像的位平面分解为例,代码如下:import cv2 import numpy as npdemo = cv2.imread("demo.jpg", 0)cv2.imshow("demo", demo)r, c = demo.shape ...原创 2019-12-05 00:54:58 · 2988 阅读 · 4 评论