自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (62)
  • 收藏
  • 关注

原创 OpenCV-Python图像平滑处理

理论基础在尽量保留图像原有信息的情况下,过滤掉图像内部的噪声,这一过程称为对图像的平滑处理,所得的图像称为平滑图像。图像平滑处理的基本原理是,将噪声所在像素点的像素值处理为其周围临近像素点的值的近似值。取近似值的方式很多,主要包括:均值滤波方框滤波高斯滤波中值滤波双边滤波2D 卷积(自定义滤波)均值滤波均值滤波是指用当前像素点周围 N·N 个像素值的均值来代替当前像素值。使用该方法遍历处理图像内的每一个像素点,即可完成整幅图像的均值滤波。例如,希望对图中位于第 5 行第 5 列的

2021-01-21 17:31:17 940 1

原创 OpenCV-Python图像透视

仿射变换可以将矩形映射为任意平行四边形,透视变换则可以将矩形映射为任意四边形。透视变换通过函数 cv2.warpPerspective()实现,该函数的语法是:dst = cv2.warpPerspective( src, M, dsize[, flags[, borderMode[, borderValue]]] )使用函数 cv2.getPerspectiveTransform()生成转换矩阵,其语法格式为:retval = cv2.getPerspectiveTransform( src, d

2021-01-21 16:49:07 303

原创 OpenCV-Python图像仿射变换

OpenCV 提供了函数 cv2.getAffineTransform()来生成转换矩阵 M。retval=cv2.getAffineTransform(src, dst) src 代表输入图像的三个点坐标。 dst 代表输出图像的三个点坐标。src 和 dst 中的三个点分别对应平行四边形的左上角、右上角、左下角三个点函数 **cv2.warpAffine()**以函数 cv2.getAffineTransform()获取的转换矩阵 M 为参数,将 src 中的点仿射到 dst 中。imp

2021-01-21 16:36:06 602

原创 OpenCV-Python图像傅里叶变换opencv实现

OpenCV为此提供了cv.dft()和cv.idft()函数。它返回与前一个相同的结果,但是有两个通道。第一个通道是结果的实部,第二个通道是结果的虚部。输入图像首先应转换为np.float32。傅里叶变换import cv2import numpy as npimport matplotlib.pyplot as pltimg = cv2.imread('images/lena.jpg',0)img_float32 = np.float32(img)cv2.imshow("img",im

2021-01-21 11:46:19 242

原创 OpenCV-Python图像傅里叶变换Numpy实现

理论基础图像处理一般分为空间域处理和频率域处理。空间域处理是直接对图像内的像素进行处理。空间域处理主要划分为灰度变换和空间滤波两种形式。灰度变换是对图像内的单个像素进行处理,比如调节对比度和处理阈值等。空间滤波涉及图像质量的改变,例如图像平滑处理。空间域处理的计算简单方便,运算速度更快。频率域处理是先将图像变换到频率域,然后在频率域对图像进行处理,最后再通过反变换将图像从频率域变换到空间域。傅里叶变换是应用最广泛的一种频域变换,它能够将图像从空间域变换到频率域,而逆傅里叶变换能够将频率域信息变换到空间

2021-01-21 11:35:04 2330

原创 OpenCV-Python图像轮廓特征

如何找到轮廓的不同特征,例如面积,周长,质心,边界框等?轮廓面积 area = cv.contourArea(cnt) 轮廓周长 perimeter = cv.arcLength(cnt,True)轮廓近似epsilon = 0.1*cv.arcLength(cnt,True) approx = cv.approxPolyDP(cnt,epsilon,True)外接矩形直角矩形,不考虑物体的旋转。所以边界矩形的面积不是最小的。它是由函数cv.boundingRect()找到的。(

2021-01-20 17:53:42 189

原创 OpenCV-Python图像轮廓

轮廓谈起轮廓不免想到边缘,它们确实很像。简单的说,轮廓是连续的,边缘并不全都连续。轮廓可以简单地解释为连接具有相同颜色或强度的所有连续点(沿边界)的曲线。轮廓是用于形状分析以及对象检测和识别的有用工具。为了获得更高的准确性,请使用二进制图像。因此,在找到轮廓之前,请应用阈值或canny边缘检测。在OpenCV中,找到轮廓就像从黑色背景中找到白色物体。因此请记住,要找到的对象应该是白色,背景应该是黑色。import numpy as npimport cv2 as cvim = cv.imre

2021-01-20 17:26:35 284

原创 OpenCV-Python图像金字塔

图像金字塔是图像中多尺度表达的一种,一幅图像的金字塔是源于同一张原始图,分辨率逐步减少的图像集合。其通过梯次向下采样获得。直到达到某个终止条件才停止采样。金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率的近似。层级越高,则图像越小。分辨率越低。有两种图像金字塔。1)高斯金字塔2)拉普拉斯金字塔高斯金字塔中的较高级别(低分辨率)是通过删除较低级别(较高分辨率)图像中的连续行和列而形成的。然后,较高级别的每个像素由基础级别的5个像素的贡献与高斯权重形成。通过这样做,M×N图像变成M/2×N/

2021-01-20 15:39:12 144

原创 OpenCV-Python图像Canny边缘检测

Canny边缘检测是一种非常流行的边缘检测算法,是John Canny在1986年提出的。它是一个多阶段的算法,即由多个步骤构成。1.图像降噪2.计算图像梯度3.非极大值抑制4.阈值筛选.图像降噪 ,使用高斯滤波器,以平滑图像,滤除噪声。计算图像梯度,得到可能边缘。计算图像中每个像素点的梯度强度和方向。应用非极大值(Non-Maximum Suppression)抑制,以消除边缘检测带来的杂散响应。应用双阈值(Double-Threshold)检测来确定真实的和潜在的

2021-01-20 11:30:46 132

原创 OpenCV-Python图像梯度 Laplacian算子

拉普拉斯滤波器使用的卷积核:  从图中可以看出当前点的位置与周围4个点位置之差, 即周围四个点之和 - 4*当前位置像素点,这种算法容易受到噪声点的干扰,不存在x和y轴的计算过程P5lap =( P2 + P4 + P6 + P8 ) - 4* P5import cv2img = cv2.imread("images/img2_small.jpg", cv2.IMREAD_GRAYSCALE)laplacian = cv2.Laplacian(img,cv2.CV_64F)laplaci

2021-01-20 10:43:47 540

原创 OpenCV-Python图像梯度 Scharr算子

在使用3x3的Sobel算子是精度可能不高,Scharr速度与Sobel算子一样 ,但精度更高函数形式dst = cv2.Scharr( src , ddepth , dx , dy [ , scale [ ,delta [, borderType]]])与Sobel相似少了Ksize参数, 即当Sobel中ksize = -1 时会使用Scharr算子计算。import cv2img = cv2.imread("images/img2_small.jpg", cv2.IMREAD_GRAYSC

2021-01-20 10:35:40 251

原创 OpenCV-Python图像梯度 Sobel算子

图像的梯度计算的是图像变化的速度,对于边缘部分呢灰度值变换大,梯度值也大,相反则灰度值变化小,梯度值小Sobel算子是一种离散的微分算子,该算子结合了高斯平滑处理和微分求导运算。 该算子利用局部差寻找边缘将Sobel算子Gx和原始图像卷积可以得到水平方向的像素值变化,与Gy卷积的到垂直方向的像素值变化。将sober算子在图中进行平移,当前位置的像素值等于sobel算子与(当前位置与周边位置8个点)进行对应位置相乘并相加操作,作为当前位置的像素点。如果要计算P5的水平方向,则需要Sobel算子及P

2021-01-20 10:24:50 1021

原创 OpenCV-Python图像形态学

形态学操作其实就是改变物体的形状,比如腐蚀就是"变瘦",膨胀就是"变胖",看下图就明白了:形态学操作一般作用于二值化图,来连接相邻的元素或分离成独立的元素。腐蚀和膨胀是针对图片中的白色部分!腐蚀腐蚀前景物体的边界。内核滑动通过图像(在2D卷积中)。原始图像中的一个像素(无论是1还是0)只有当内核下的所有像素都是1时才被认为是1,否则它就会被侵蚀(变成0)。根据内核的大小,边界附近的所有像素都会被丢弃。因此,前景物体的厚度或大小减小,或只是图像中的白色区域减小。它有助于去除小的白色噪声。这个核也

2021-01-20 09:00:58 113

原创 OpenCV-Python图像阈值

基础理论二进制阈值化反二进制阈值化截断阈值化阈值化为0反阈值化为0代码实现import cv2import matplotlib.pyplot as pltimport numpy as npimg = cv2.imread("./images/img3.jpg")img=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)img_gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)ret, thresh1

2021-01-19 15:21:11 83

原创 OpenCV-Python图像边界填充

cv.copyMakeBorder(img,top, bottom, left, right ,borderType)img:需要填充的图像;top:图像上边界需要填充的像素点;bottom:图像下边界需要填充的像素点;left:图像左边界需要填充的像素点;right:图像右边界需要填充的像素点;borderType:图像填充的方法。图像填充方法BORDER_REPLICATE:复制法,也就是复制最边缘像素。BORDER_REFLECT:反射法,对感兴趣的图像中的像素在两边进行复制例

2021-01-19 14:44:27 7862 1

原创 OpenCV-Python图像加权和

也是图像加法,但是对图像赋予不同的权重,以使其具有融合或透明的感觉img1 = cv.imread('img1.png')img2 = cv.imread('img2.png')dst = cv.addWeighted(img1,0.7,img2,0.3,0)cv.imshow('dst',dst)cv.waitKey(0)cv.destroyAllWindows()...

2021-01-19 09:32:56 256

原创 OpenCV-Python图像掩模

import cv2import matplotlib.pyplot as pltimport numpy as npimage = cv2.imread("./images/lena_small.jpg")print(image.shape)cv2.imshow("src",image)mask=np.zeros(image.shape,dtype=np.uint8)white=(255,255,255)cv2.rectangle(mask,(30,30),(220,220),white

2021-01-19 09:02:41 500

原创 OpenCV-Python图像位操作

按位操作包括按位与、或、非、异或 操作import cv2import matplotlib.pyplot as pltimport numpy as np# image = cv2.imread("./images/img2_small.jpg")rectangle = np.zeros((200,200,3),dtype='uint8')white = (255,255,255)cv2.rectangle(rectangle, (15,15), (185,185), white, -1)

2021-01-18 21:44:11 291

原创 OpenCV-Python图像算术运算

图像加法使用OpenCV函数cv.add()或通过img1 + img2使两个图像相加。两个图像应具有相同的深度和类型。图像减法使用OpenCV函数cv.subtract()或通过 img1 - img2使两个图像相减。两个图像应具有相同的深度和类型。OpenCV加法运算过程结果若是在0到255之间,结果不变;小于0的为0,大于255的为255OpenCV是饱和运算“+” 的运算过程模运算减法运算过程同加法# 图像加法 255# 200+100 = 3000 => 255pr

2021-01-18 21:24:46 346

原创 OpenCV-Python图像裁剪

import cv2import matplotlib.pyplot as pltimport numpy as npimage = cv2.imread("./images/lena.jpg")print(image.shape)cv2.imshow("src",image)img = image[200:300,100:500]cv2.imshow("img",img)cv2.waitKey(0)cv2.destroyAllWindows()

2021-01-18 20:35:17 353

原创 OpenCV-Python 绘图

import cv2import matplotlib.pyplot as pltimport numpy as npfrom PIL import Image, ImageDraw, ImageFontdef line(): # 创建黑色的图像 img = np.zeros((300, 300,3), dtype=np.uint8) # 绘制一条厚度为5的蓝色对角线 cv2.line(img,(0,0),(299,299),(255,0,0),5)

2021-01-18 17:45:14 184 2

原创 OpenCV-Python图像处理基础

原文链接http://codec.wang/#/opencv/start/04-basic-operationsimport cv2img = cv2.imread('lena.jpg')读取像素的值通过行列的坐标来获取某像素点的值,对于彩色图,结果是B,G,R三个值的列表,对于灰度图或单通道图,只有一个值:px = img[100, 90]print(px) # [103 98 197]# 只获取蓝色blue通道的值px_blue = img[100, 90, 0]print(

2021-01-18 16:54:52 340

原创 OpenCV-Python 图像翻转

镜像翻转图片,使用cv2.flip(src, flipCode)函数其中,参数2 = 0:垂直翻转(沿x轴),参数2 > 0: 水平翻转(沿y轴),参数2 < 0: 水平垂直翻转。import cv2import matplotlib.pyplot as pltimport numpy as npimage = cv2.imread("./images/lena.bmp")print(image.shape)cv2.imshow("src",image)# 垂直翻转img1

2021-01-18 16:28:02 613

原创 OpenCV-Python 图像缩放

缩放就是调整图片的大小,使用cv2.resize()函数实现缩放。图像的大小可以手动指定,也可以指定缩放比例。也可使用不同的插值方法。插值方式cv.INTER_NEAREST 最近邻插值cv.INTER_LINEAR 双线性插值cv.INTER_CUBIC 双线性插值cv.INTER_AREA 使用像素区域关系重新采样。它可能是图像抽取的首选方法。通常的,缩小使用cv.INTER_AREA,放缩使用cv.INTER_CUBIC(较慢)和cv.INTER_LINEAR(较快效果也不错)。默认情况

2021-01-18 15:45:31 3488

原创 OpenCV-Python 图像旋转

图像旋转角度θ是通过以下形式的变换矩阵实现的:OpenCV提供了函数cv.getRotationMatrix2D 获得图像绕着某一点的旋转矩阵img = cv.imread('m5.jpg',0)rows,cols = img.shape# cols-1 和 rows-1 是坐标限制M = cv.getRotationMatrix2D(((cols-1)/2.0,(rows-1)/2.0),90,1)dst = cv.warpAffine(img,M,(cols,rows))import

2021-01-18 15:00:31 647 1

原创 OpenCV-Python 图像平移

平移是物体位置的移动。创建转换矩阵M位移设为(tx,ty)把数据放入放入np.float32类型的Numpy数组中。使用cv.warpAffine函数完成平移代码实现import numpy as npimport cv2 as cvimg = cv.imread('m5.jpg',0)rows,cols = img.shapeM = np.float32([[1,0,100],[0,1,50]])dst = cv.warpAffine(img,M,(cols,rows))cv.im

2021-01-18 11:18:01 1185 1

原创 pytorch对CIFAR10图片分类 django 框架实现

CIFAR-10 是一个用于识别普适物体的小型数据集。一共包含 10 个类别的 RGB 彩色图 片:飞机( aplane )、汽车( automobile )、鸟类( bird )、猫( cat )、鹿( deer )、狗( dog )、蛙类( frog )、马( horse )、船( ship )和卡车( truck )。图片的尺寸为 32×32 ,数据集中一共有 50000 张训练圄片和 10000 张测试图片。上传图片使用bootstrap-fileinput插件上传图片 $("#file").

2021-01-14 11:56:41 457 1

原创 OpenCV-Python 图像处理基本操作

读入图片使用函数 cv2.imread(img_path,flag) 读入图像。第一个参数是图像的路径,第二个参数是图像的显示控制。cv2.IMREAD_COLOR:彩色模式读入图像。图像的透明度会被忽略,这是默认参数,也可以传入1。cv2.IMREAD_GRAYSCALE:灰度模式读入图像 ,也可以传入0。cv2.IMREAD_UNCHANGED:包括图像的 alpha 通道,也可以传入-1。import cv2im=cv2.imread("../images/test.png")

2021-01-13 20:56:22 159

设计模式--代理模式

设计模式--代理模式设计模式--代理模式设计模式--代理模式设计模式--代理模式设计模式--代理模式

2009-03-20

设计模式--装饰模式

设计模式--装饰模式 设计模式--装饰模式 设计模式--装饰模式 设计模式--装饰模式

2009-03-20

面向对象设计原则(整理)

单一职责原则(SRP)、开放-封闭原则(OCP)、Liskov替换原则(LSP)、依赖倒置原则(DIP)、接口分离原则(ISP)

2009-03-19

10_图书馆管理系统

10_图书馆管理系统.rar 10_图书馆管理系统.rar 10_图书馆管理系统.rar 10_图书馆管理系统.rar

2009-03-17

09_在线考试系统 c#

09_在线考试系统 09_在线考试系统 09_在线考试系统

2009-03-17

08_超市进销存销售管理系统

08_超市进销存销售管理系统 08_超市进销存销售管理系统

2009-03-17

07_企业人事管理系统

07_企业人事管理系统 07_企业人事管理系统 07_企业人事管理系统

2009-03-17

06_餐饮管理系统 c#

06_餐饮管理系统 06_餐饮管理系统 06_餐饮管理系统

2009-03-17

05_企业QQ系统 c#

05_企业QQ系统 05_企业QQ系统 05_企业QQ系统

2009-03-17

04_卡拉OK点歌系统

卡拉OK点歌系统 卡拉OK点歌系统 卡拉OK点歌系统

2009-03-17

03_企业电话客服系统

03_企业电话客服系统 03_企业电话客服系统03_企业电话客服系统

2009-03-17

vb在线升级程序(源码)

一个小巧好用的互联网在线更新工具,支持显示下载进度,下载后支持即时执行更新,也可以自定义启动程序。主要这个代码不复杂,比较方便易用,没有其他第三方控件和API函数,在线更新的功能都具有。

2009-01-16

小财迷家庭理财收支管理系统

小财迷家庭理财收支管理系统 小财迷家庭理财收支管理系统

2009-01-12

C#字符串和正则表达式参考手册

18.C#字符串和正则表达式参考手册.pdf

2009-01-11

你必须知道的.NET

你必须知道的.NET你必须知道的.NET

2009-01-11

新手入门_Oracle 10G服务器安装图解

新手入门_Oracle 10G服务器安装图解

2009-01-03

OA办公自动化系统(c#2005)

OA办公自动化系统(c#2005)OA办公自动化系统(c#2005)

2009-01-03

C#精品案例解析100实例

C#精品案例解析100实例!!!C#精品案例解析100实例

2009-01-03

C#在VS2005_下的典型实例源码大全

C#在VS2005_下的典型实例源码大全

2008-12-24

ASP.NET v2.0 入门50例源码

ASP.NET v2.0 入门50例源码ASP.NET v2.0 入门50例源码

2008-12-17

CSS从入门到精通(第2版)

CSS从入门到精通(第2版)

2013-05-12

C#与.NET程序员面试宝典].靳华.胡鑫鑫

C#与.NET程序员面试宝典].靳华.胡鑫鑫

2013-05-11

JavaScript设计模式

JavaScript设计模式

2013-05-11

C#.4.0权威指南

C#.4.0权威指南

2013-05-11

ASP.NET夜话

ASP.NET夜话

2013-05-11

LINQ实战

LINQ实战

2013-05-11

5天驾驭JQuery教程

5天驾驭JQuery教程

2013-05-11

ASP·NET程序员成长攻略

ASP·NET程序员成长攻略

2013-05-11

王爽汇编语言 课件

王爽汇编语言 课件

2011-12-05

[Ruby.Programming_向Ruby之父学程序设计(第2版)]

[Ruby.Programming_向Ruby之父学程序设计(第2版)

2011-11-26

Python技术手册(第2版)

Python技术手册(第2版)

2011-11-26

Python基础教程(第2版)

Python基础教程(第2版)

2011-11-26

[jQuery攻略

[jQuery攻略

2011-11-26

NHibernate文档.chm

NHibernate文档.

2011-11-26

深入浅出ajax

深入浅出ajax

2011-11-26

.net_winform下代码计算统计工具

.net_winform下代码计算统计工具 .net_winform下代码计算统计工具 .net_winform下代码计算统计工具

2009-10-16

水木艾迪2009考研数学基础班讲义

水木艾迪2009考研数学基础班讲义 水木艾迪2009考研数学基础班讲义

2009-05-09

数据结构配套纯C代码

数据结构配套纯C代码 数据结构配套纯C代码 数据结构配套纯C代码 数据结构配套纯C代码

2009-04-07

严蔚敏:数据结构题集c语言版

严蔚敏:数据结构题集c语言版.pdf 严蔚敏:数据结构题集c语言版.pdf 严蔚敏:数据结构题集c语言版.pdf

2009-04-06

数据结构 C语言 严蔚敏(电子版)

数据结构 C语言 严蔚敏(电子版) 数据结构 C语言 严蔚敏(电子版) 数据结构 C语言 严蔚敏(电子版)

2009-04-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除