图像处理

深度学习暑期学校(加拿大、蒙特利尔,2016.8.1-7)

半世苍凉 提交于 2019-12-08 00:21:00
learning to see.pdf @lutingting 2016-11-04 16:15 字数 10899 阅读 4087 SIFT特征提取及匹配 数字图像处理 图像特征提取 SIFT特征提取及匹配 1.SIFT(Scale-invariant feature transform)算子的核心思想 2.什么是尺度空间呢? 2.1 一篇百度文库的文章关于尺度空间的分析 例子1 例子2 现实生活中的例子 2.2 SIFT中的尺度空间的概念 3.SIFT特征提取 3.1 尺度空间极值检测 3.1.1 尺度空间的建立(高斯金字塔的建立) 3.1.2 图像差分高斯金字塔(DoG)的建立 3.1.3 尺度空间中特征点的检测(DoG中极值点的检测) 3.2 关键点位置及尺度确定 3.3 关键点方向确定 3.4 特征向量生成 4.SIFT特征的匹配 5.下面是一些参考程序 5.1 5.2 1.SIFT(Scale-invariant feature transform)算子的核心思想 利用不同尺度的高斯核函数对图像进行平滑,即构造图像的尺度空间 比较不同尺度平滑后的图像差别,在某局部范围内,差别最大或者差别最小的像素点就是特征明显的点 由于SIFT特征的检测方式,使得它具有: 尺度不变性:在尺度空间内进行的特征点检测 2.什么是尺度空间呢? 2.1 一篇百度文库的文章关于尺度空间的分析

【python图像处理】python绘制极坐标图

做~自己de王妃 提交于 2019-12-07 22:20:00
极坐标图在数据统计和分析中也经常会用到,这里就介绍一下如何使用python来绘制极坐标图,主要介绍极坐标散点图和极坐标饼状图。 1、极坐标散点图 N = 150 r = 2 * np.random.rand(N) theta = 2 * np.pi * np.random.rand(N) area = 200 * r**2 colors = theta ax = plt.subplot(111, projection='polar') c = ax.scatter(theta, r, c=colors, s=area, cmap='hsv', alpha=0.75) plt.show() 绘制结果如下: 2、极坐标饼状图 import numpy as np import matplotlib.pyplot as plt # Compute pie slices N = 20 theta = np.linspace(0.0, 2 * np.pi, N, endpoint=False) radii = 10 * np.random.rand(N) width = np.pi / 4 * np.random.rand(N) ax = plt.subplot(111, projection='polar') bars = ax.bar(theta, radii, width=width,

python图像处理常用方法

我的梦境 提交于 2019-12-07 20:46:27
在线标注网站 https://gitlab.com/vgg/via http://www.robots.ox.ac.uk/~vgg/software/via/via.html 数组与图像互转 from matplotlib import image image.imsave('/xxx/%d.jpg'%d, array, cmap='gray') #数组转灰度图,jpg为三个通道数值一样 arr = image.imread("") 灰度图增强对比度 from PIL import Image from PIL import ImageEnhance img = Image.open('/xxx/xx.jpg') img.show() enh_con = ImageEnhance.Contrast(img) contrast = 1.5 #增强的倍数 img_contrasted = enh_con.enhance(contrast) img_contrasted.show() 读CSV with open('/xxx.csv')as f: csv_reader = csv.reader(f) for row in csv_reader: print(row) 来源: https://www.cnblogs.com/flyuz/p/12003282.html

图像处理之计算连通区域的角度方向

我只是一个虾纸丫 提交于 2019-12-07 16:03:50
图像处理之计算连通区域的角度方向 一:基本原理 基于空间Moment算法在图像处理与分析中寻找连通区域计算连通区域的中心与角度方 向 Moment的一阶可以用来计算区域的中心质点,二阶可以用来证明图像的几个不变性 如旋 转不变行,放缩不变性等。基于Moment的二阶计算结果,根据如下公式: 可以得到区域的方向角度。 二:算法流程 1. 读入图像数据 2. 根据连通组件标记算法得到区域 3. 根据中心化Moment算法计算角度 4. 根据中心离心值画出渲染黄色线条 三:算法演示效果 四:算法主要源代码 package com.gloomyfish.image.moments; import java.awt.image.BufferedImage; import com.gloomyfish.filter.study.AbstractBufferedImageOp; import com.gloomyfish.rice.analysis.FastConnectedComponentLabelAlg; public class DirectionRegionMoments extends AbstractBufferedImageOp { @Override public BufferedImage filter(BufferedImage src, BufferedImage

图像处理控件ImageGear for .NET中如何给应用程序添加PDF功能

谁说我不能喝 提交于 2019-12-07 01:20:24
在 ImageGear for .NET 中,一旦基础的应用程序完成之后,你就可以使用下面的步骤对它添加PDF功能支持。 1、首先需要对ImageGear for .NET PDF Assembly添加一个引用。 在Solution Explorer中,在引用上右键单击然后选择“添加引用”。 选择Browse选项卡。 在“ImageGear for .NET v21\Bin”目录下,选择ImageGear21.Formats.Pdf.dll,然后单价“OK”。 现在ImageGear21.Formats.Pdf组件应该已经列在Solution Explorer的引用中了。 2、下面使用语句添加PDF。 >>> 示例源码 3、在 Form1 构造函数中调用InitializeComponent()之前添加下面的语句。 >>> 示例源码 4、终止的PDF引擎最好的地方是FormClosed()事件处理程序,在Form1属性窗口中使用Events选项添加,并粘贴下面的代码: >>> 示例源码 5、下一步是打开项目属性,并改变输出路径“... \ ImageGear NET V21 \ BIN ”。也可以一个目录,包含ImageGear binaries 以及PDF源,作为对ImGearPDF.CreatePDFFormat、ImGearPDF.CreatePSFormat以及

图像处理控件ImageGear for .NET教程:C# WPF应用程序创建示例(2)

谁说我不能喝 提交于 2019-12-07 01:19:21
在前面的《 图像处理控件ImageGear for .NET教程: C# WPF应用程序创建示例(1) 》一文中已经讲解了如何在 ImageGear for .NET 中对于C# WPF应用程序创建了项目,本文将继续前文。 设计窗体 一、创建在窗体中的菜单 在Windows Forms工具箱中,拖一个MenuStrip控件到这个窗体中。 创建三个菜单,命名为File、View、Processing。 在File菜单下,添加Load Page 和 Exit。 在View菜单下,添加Zoom In 和 Zoom Out。 在Processing菜单下,添加Rotate 90、Rotate 180、Rotate 270。 对于本次的教程,保持控件默认的名称,并双击每个项目,创建一个控制器。 二、在窗体中添加ImageGear Page View控件 在Windows Forms工具箱中,拖拽ImGearPageView控件到窗体上。 设置imGearPageView1控件的Dock属性为“fill”,这个将会使得控件以窗体来重新调整。 保留默认的控件名称,比如imGearPageView1控件。现在窗体的外观就会如下所示: 开发应用程序 一、首先,添加必要的using语句 >> 示例代码 二、添加下面的域到Form1: >> 示例代码 三、如果你使用的是运行时授权

python人工智能-图像识别

纵然是瞬间 提交于 2019-12-06 16:15:51
一、安装库 首先我们需要安装PIL和pytesseract库。 PIL:(Python Imaging Library)是Python平台上的图像处理标准库,功能非常强大。 pytesseract:图像识别库。 我这里使用的是python3.6,PIL不支持python3所以使用如下命令 pip install pytesseract pip install pillow 如果是python2,则在命令行执行如下命令: pip install pytesseract pip install PIL 这时候我们去运行上面的代码会发现如下错误: 错误提示的很明显: No such file or directory :"tesseract" 这是因为我们没有安装tesseract-ocr引擎 二、tesseract-ocr引擎 光学字符识别(OCR,Optical Character Recognition)是指对文本资料进行扫描,然后对图像文件进行分析处理,获取文字及版面信息的过程。OCR技术非常专业,一般多是印刷、打印行业的从业人员使用,可以快速的将纸质资料转换为电子资料。关于中文OCR,目前国内水平较高的有清华文通、汉王、尚书,其产品各有千秋,价格不菲。国外OCR发展较早,像一些大公司,如IBM、微软、HP等,即使没有推出单独的OCR产品,但是他们的研发团队早已掌握核心技术

图像处理控件ImageGear for .NET教程如何为应用程序 添加DICOM功能(2)

一笑奈何 提交于 2019-12-06 10:38:43
在前面的一些关于图像处理控件 ImageGear for .NET 文章 《图像处理控件ImageGear for .NET教程: 添加DICOM功能(1)》 中讲解了如何对应用程序添加 DICOM 功能支持的部分内容,本文将完成添加 DICOM 功能支持的所有步骤。 五、要添加支持加载/保存覆盖,需要做下面的改变: 1、需要对ImageGear ART组件添加引用。 2、接下来,添加相应的using语句 [csharp] using ImageGear.ART;<a target= "_blank" href= "http://www.evget.com/zh-CN/Info/catalog/19725.html" ></a> 3、声明下面的成员变量: [csharp] private ImGearARTPage artPage;<a target= "_blank" href= "http://www.evget.com/zh-CN/Info/catalog/19725.html" ></a> 4、修改loadDocumentToolStripMenuItem_Click事件处理程序的代码,imGearPageView1.Invalidate ()调用之前添加下面的代码: >>> 示例代码 5、要启用保存覆盖,在保存页面到文件之前需要添加下面的语句: [csharp]

图像卷积与滤波的一些知识点

核能气质少年 提交于 2019-12-05 23:48:07
转自 http://blog.csdn.net/zouxy09/article/details/49080029 一、线性滤波与卷积的基本概念 线性滤波可以说是图像处理最基本的方法,它可以允许我们对图像进行处理,产生很多不同的效果。做法很简单。首先,我们有一个二维的滤波器矩阵(有个高大上的名字叫卷积核)和一个要处理的二维图像。然后,对于图像的每一个像素点,计算它的邻域像素和滤波器矩阵的对应元素的乘积,然后加起来,作为该像素位置的值。这样就完成了滤波过程。 对图像和滤波矩阵进行逐个元素相乘再求和的操作就相当于将一个二维的函数移动到另一个二维函数的所有位置,这个操作就叫卷积或者协相关。卷积和协相关的差别是,卷积需要先对滤波矩阵进行180的翻转,但如果矩阵是对称的,那么两者就没有什么差别了。 Correlation 和 Convolution可以说是图像处理最基本的操作,但却非常有用。这两个操作有两个非常关键的特点:它们是线性的,而且具有平移不变性shift-invariant。平移不变性指我们在图像的每个位置都执行相同的操作。线性指这个操作是线性的,也就是我们用每个像素的邻域的线性组合来代替这个像素。这两个属性使得这个操作非常简单,因为线性操作是最简单的,然后在所有地方都做同样的操作就更简单了。 实际上,在信号处理领域,卷积有广泛的意义,而且有其严格的数学定义,但在这里不关注这个。

图像处理

天大地大妈咪最大 提交于 2019-12-05 20:19:34
import cv2 as cv import numpy as np # 全局阈值 def threshold_demo(image): gray = cv.cvtColor(image, cv.COLOR_RGB2GRAY) # 把输入图像灰度化 # 直接阈值化是对输入的单通道矩阵逐像素进行阈值分割。 ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_TRIANGLE) print("threshold value %s"%ret) cv.namedWindow("binary0", cv.WINDOW_NORMAL) cv.imshow("binary0", binary) # 局部阈值 def local_threshold(image): gray = cv.cvtColor(image, cv.COLOR_RGB2GRAY) # 把输入图像灰度化 # 自适应阈值化能够根据图像不同区域亮度分布,改变阈值 binary = cv.adaptiveThreshold(gray, 255, cv.ADAPTIVE_THRESH_GAUSSIAN_C,cv.THRESH_BINARY, 25, 10) cv.namedWindow("binary1", cv.WINDOW_NORMAL)