函数图像

Python-OpenCV中的filter2D()函数

独自空忆成欢 提交于 2019-12-08 21:28:32
原文转自:https://www.cnblogs.com/lfri/p/10599420.html Python-OpenCV中的filter2D()函数 使用自定义内核对图像进行卷积。该功能将任意线性滤波器应用于图像。支持就地操作。当光圈部分位于图像外部时,该功能会根据指定的边框模式插入异常像素值。 语法 函数原型: dst=cv.filter2D(src, ddepth, kernel[, dst[, anchor[, delta[, borderType]]]]) 参数: 参数 描述 src 原图像 dst 目标图像,与原图像尺寸和通过数相同 ddepth 目标图像的所需深度 kernel 卷积核(或相当于相关核),单通道浮点矩阵;如果要将不同的内核应用于不同的通道,请使用拆分将图像拆分为单独的颜色平面,然后单独处理它们。 anchor 内核的锚点,指示内核中过滤点的相对位置;锚应位于内核中;默认值(-1,-1)表示锚位于内核中心。 detal 在将它们存储在dst中之前,将可选值添加到已过滤的像素中。类似于偏置。 borderType 像素外推法,参见BorderTypes 该函数实际计算的是相关性,而不是卷积 dst ( x , y ) = ∑ 0 ≤ y ′ < kernel.rows 0 ≤ x ′ < kernel.cols , kernel ( x ′ , y ′

动手学PyTorch | (23) AlexNet

孤人 提交于 2019-12-08 14:46:53
在LeNet提出后的将近20年里,神经⽹络⼀度被其他机器学习⽅法超越,如支持向量机。虽然LeNet可以在早期的⼩数据集上取得好的成绩,但是在更大的真实数据集上的表现并不尽如人意。⼀⽅面,神经⽹络计算复杂。虽然20世纪90年代也有过⼀一些针对神经网络的加速硬件,但并没有像之后GPU那样⼤量普及。因此,训练⼀个多通道、多层和有大量参数的卷积神经网络在当年很难完成。另⼀方面,当年研究者还没有⼤量深⼊研究参数初始化和⾮凸优化算法等诸多领域,导致复杂的神经网络的训练通常较困难。 我们在上一节看到,神经网络可以直接基于图像的原始像素进行分类。这种称为端到端(end-to- end)的⽅法节省了很多中间步骤。然而,在很长⼀段时间里更流行的是研究者通过勤劳与智慧所设计并⽣成的⼿工特征(特征工程)。这类图像分类研究的主要流程是: 1)获取图像数据集 2)使用已有的特征提取函数生成图像的特征 3)使用机器学习模型对图像的特征分类 当时认为的机器学习部分仅限最后这一步。如果那时候跟机器学习研究者交谈,他们会认为机器学习既􏰁重要又优美。优雅的定理证明了许多分类器的性质。机器学习领域生机勃勃、严谨⽽且极其有用。然而,如果跟计算机视觉研究者交谈,则是另外⼀一幅景象。他们会告诉你图像识别⾥“不可告⼈”的现实是:计算机视觉流程中真正􏰁重要的是数据和特征。也就是说,使用较⼲净的数据集和较有效的特征甚⾄

OpenCV Mat读取和显示图片

家住魔仙堡 提交于 2019-12-08 03:13:04
一、从文件读取图像并显示 1. 程序 在 基于VS2013搭建OpenCV开发环境 这篇文章的最后给出了一个简单的Demo,这个例子跟本篇使用的例子是一样的。打开C++ IDE并创建一个新的项目,新建一个源文件,粘贴下面的代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 #include <opencv2\highgui\highgui.hpp> #include <iostream> using namespace cv; using namespace std; int main( int argc, const char ** argv) { Mat img = imread( "earth.jpg" , CV_LOAD_IMAGE_UNCHANGED); if (img.empty()) { cout << "图像加载失败!" << endl; //system("pause"); return -1; } //创建一个名字为MyWindow的窗口 namedWindow( "MyWindow" , CV_WINDOW_AUTOSIZE); //在MyWindow的窗中中显示存储在img中的图片 imshow( "MyWindow" , img); //等待直到有键按下 waitKey

Python中的图像处理

有些话、适合烂在心里 提交于 2019-12-08 03:00:03
http://www.ituring.com.cn/tupubarticle/2024 第 1 章 基本的图像操作和处理 本章讲解操作和处理图像的基础知识,将通过大量示例介绍处理图像所需的 Python 工具包,并介绍用于读取图像、图像转换和缩放、计算导数、画图和保存结果等的基本工具。这些工具的使用将贯穿本书的剩余章节。 1.1 PIL:Python图像处理类库 PIL(Python Imaging Library Python,图像处理类库)提供了通用的图像处理功能,以及大量有用的基本图像操作,比如图像缩放、裁剪、旋转、颜色转换等。PIL 是免费的,可以从 http://www.pythonware.com/products/pil/ 下载。 利用 PIL 中的函数,我们可以从大多数图像格式的文件中读取数据,然后写入最常见的图像格式文件中。PIL 中最重要的模块为 Image 。要读取一幅图像,可以使用: from PIL import Image pil_im = Image . open ( 'empire.jpg' ) 上述代码的返回值 pil_im 是一个 PIL 图像对象。 图像的颜色转换可以使用 convert() 方法来实现。要读取一幅图像,并将其转换成灰度图像,只需要加上 convert('L') ,如下所示: pil_im = Image . open (

Python绘制不同激活函数图像

一曲冷凌霜 提交于 2019-12-07 18:31:24
1 """ 2 功能:Python绘制不同激活函数图像 3 姓名:侯俊龙 4 日期:2019/12/07 5 """ 6 7 import matplotlib.pyplot as plt 8 import numpy as np 9 10 x = np.linspace(-10,10) 11 # 绘制sigmoid图像 12 fig = plt.figure() 13 y_sigmoid = 1/(1+np.exp(-x)) 14 ax = fig.add_subplot(221) 15 ax.plot(x,y_sigmoid) 16 ax.grid() 17 ax.set_title('(a) Sigmoid') 18 19 # 绘制Tanh图像 20 ax = fig.add_subplot(222) 21 y_tanh = (np.exp(x)-np.exp(-x))/(np.exp(x)+np.exp(-x)) 22 ax.plot(x,y_tanh) 23 ax.grid() 24 ax.set_title('(b) Tanh') 25 26 # 绘制Relu图像 27 ax = fig.add_subplot(223) 28 y_relu = np.array([0*item if item<0 else item for item in x ]) 29 ax

Matlab中imagesc用法

 ̄綄美尐妖づ 提交于 2019-12-06 10:11:56
来源:https://ww2.mathworks.cn/help/matlab/ref/imagesc.html?searchHighlight=imagesc&s_tid=doc_srchtitle imagesc 显示使用经过标度映射的颜色的图像 全页折叠 语法 imagesc(C) imagesc(x,y,C) imagesc('CData',C) imagesc('XData',x,'YData',y,'CData',C) imagesc( ___,Name,Value) imagesc( ___,clims) imagesc(ax, ___) im = imagesc( ___) 说明 示例 imagesc( C ) 将数组 C 中的数据显示为一个图像,该图像使用颜色图中的全部颜色。 C 的每个元素指定图像的一个像素的颜色。生成的图像是一个 m × n 像素网格,其中 m 和 n 分别是 C 中的行数和列数。这些元素的行索引和列索引确定了对应像素的中心。 示例 imagesc( x , y , C ) 指定图像位置。使用 x 和 y 可指定与 C(1,1) 和 C(m,n) 对应的边角的位置。要同时指定两个边角,请将 x 和 y 设置为二元素向量。要指定第一个边角并让 imagesc 确定另一个,请将 x 和 y 设为标量值。图像将根据需要进行拉伸和定向。 imagesc

2019年12月2日Linux开发手记

試著忘記壹切 提交于 2019-12-06 08:51:00
开始学习在Linux下视频源捕获驱动框架,也就是V4L2(video4linux),本次关于v4l2的知识准备主要在于其的官方例程,理解官方例程也就差不多掌握了v4l2的基本内容。例程在: http://blog.chinaunix.net/uid-23983143-id-3351976.html 知识准备: v42视频编程的流程和对文件操作并没有什么本质的不同,大概的流程如下 1.打开视频设备(通常是/dev/video0) 2.获得设备信息。 3.根据需要更改设备的相关设置。 4.获得采集到的图像数据(在这里v4l提供了两种方式,直接通过打开的设备读取数据,使用mmap内存映射的方式获取数据)。 5.对采集到的数据进行操作(如显示到屏幕,图像处理,存储成图片文件)。 6.关闭视频设备。 知道了流程之后,我们就需要根据流程完成相应的函数。 第一步: 那么我们首先完成第1步打开视频设备,需要完成int v4l_open(char *, v4l_device *); 具体的函数如下 #define DEFAULT_DEVICE “/dev/video0” int v4l_open(char *dev , v4l_device *vd) { if(!dev)dev= DEFAULT_DEVICE; if((vd-fd=open(dev,O_RDWR))<0){perror(“v4l

_IplImage

久未见 提交于 2019-12-06 03:04:41
IplImage结构 由于OpenCV主要针对的是计算机视觉方面的处理,因此在函数库中,最重要的结构体是IplImage结构。从本质上讲,他是一个CvMat对象,但它还有一些其他成员变量将矩阵解释为图像。IplImage结构来源于Intel的另外一个函数库Intel Image Processing Library (IPL),该函数库主要是针对 图像处理 。IplImage结构具体定义如下: typedef struct _IplImage { int nSize; /* IplImage大小 */ int ID; /* 版本 (=0)*/ int nChannels; /* 大多数OPENCV函数支持1,2,3 或 4 个通道 */ int alphaChannel; /* 被OpenCV忽略 */ int depth; /* 像素的位深度,主要有以下支持格式: IPL_DEPTH_8U, IPL_DEPTH_8S, IPL_DEPTH_16U,IPL_DEPTH_16S, IPL_DEPTH_32S, IPL_DEPTH_32F 和IPL_DEPTH_64F */ char colorModel[4]; /* 被OpenCV忽略 */ char channelSeq[4]; /* 同上 */ int dataOrder; /* 0 - 交叉存取 颜色通道 , 1 -

最容易理解的对卷积(convolution)的解释

折月煮酒 提交于 2019-12-05 23:30:07
本文转自: 最容易理解的对卷积(convolution)的解释 https://www.cnblogs.com/alexanderkun/p/8149059.html 最容易理解的对卷积(convolution)的解释 啰嗦开场白 读本科期间,信号与系统里面经常讲到卷积(convolution),自动控制原理里面也会经常有提到卷积。硕士期间又学了线性系统理论与数字信号处理,里面也是各种大把大把卷积的概念。至于最近大火的深度学习,更有专门的卷积神经网络(Convolutional Neural Network, CNN),在图像领域取得了非常好的实际效果,已经把传统的图像处理的方法快干趴下了。啰啰嗦嗦说了这么多卷积,惭愧的是,好像一直以来对卷积的物理意义并不是那么清晰。一是上学时候只是简单考试,没有仔细思考过具体前后的来龙去脉。二是本身天资比较愚钝,理解能力没有到位。三则工作以后也没有做过强相关的工作,没有机会得以加深理解。趁着年前稍微有点时间,查阅了一些相关资料,力争将卷积的前世今生能搞明白。 1.知乎上排名最高的解释 首先选取知乎上对卷积物理意义解答排名最靠前的回答。 不推荐用“反转/翻转/反褶/对称”等解释卷积。好好的信号为什么要翻转?导致学生难以理解卷积的物理意义。 这个其实非常简单的概念,国内的大多数教材却没有讲透。 直接看图,不信看不懂。以离散信号为例,连续信号同理。

tensorflow实现DCGAN

≡放荡痞女 提交于 2019-12-05 09:18:43
1、DCGAN的简单总结 【Paper】 : http://arxiv.org/abs/1511.06434 【github】 : https://github.com/Newmu/dcgan_code theano https://github.com/carpedm20/DCGAN-tensorflow tensorflow https://github.com/jacobgil/keras-dcgan keras https://github.com/soumith/dcgan.torch torch DCGAN是继GAN之后比较好的改进,其主要的改进主要是在网络结构上,到目前为止,DCGAN的网络结构还是被广泛的使用,DCGAN极大的提升了GAN训练的稳定性以及生成结果质量。 DCGAN的生成器网络结构如上图所示, LSUN 场景模型中使用的DCGAN生成网络。一个100维度的均匀分布z映射到一个有很多特征映射的小空间范围卷积。一连串的四个微步幅卷积(在最近的一些论文中它们错误地称为去卷积),将高层表征转换为64*64像素的图像。 相较原始的GAN,DCGAN几乎完全使用了卷积层代替全链接层,判别器几乎是和生成器对称的,从上图中我们可以看到,整个网络没有pooling层和上采样层的存在,实际上是使用了带步长(fractional-strided)的卷积代替了上采样