![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图像处理
肉丸不肉
这个作者很懒,什么都没留下…
展开
-
OCR文字识别项目(原理)
参考视频:OCR文字识别原理OCR光学字符识别:提取图像中的文字,并转换为文本形式,供后续NLP使用。一、CTPN算法:文字检测二、CRNN算法:文字识别池化此时为1×2。才能把特征变为适用于输入到RNN中。...原创 2021-05-27 10:44:50 · 2489 阅读 · 1 评论 -
文字识别(输入为自然场景中的图像)
大老板给我定的方向是文字识别。所以在回所之前先把基础知识看一下,相当于综述~我的方向与目前的文字识别区别在于,目前的文字识别输入主要是自然场景中的图像,从图像进行文字检测再继而文字识别;而我要做的输入是通过手写笔在特殊笔记本上书写后采集到的坐标点。但是还是先从目前的文字识别入手吧~在这个过程中目的有两个。首先是了解文字识别的步骤与经典算法,其次是学会使用深度学习框架。参考文献:OCR文字识别用的是什么算法?文字识别方法整理一文读懂CRNN+CTC文字识别场景文字检测—CTPN原理与..原创 2021-05-25 16:14:26 · 1502 阅读 · 11 评论 -
OCR文字识别—文本识别的算法
一、CTC二、基于Attention机制原创 2021-05-25 14:52:23 · 455 阅读 · 0 评论 -
OCR文字识别—文本检测的算法
一、文字识别:通用目标检测(一阶段、两阶段)二、Faster R-CNN这个是通用目标检测的典型算法。框架分为四大部分:三、CTPN:两阶段的文本检测原创 2021-05-25 14:31:09 · 3924 阅读 · 0 评论 -
OCR文字识别(初识)
一、OCR的概念OCR(Optical Character Recognition):定位与识别图片中的所有文字信息,返回文字框位置与文字内容。即对文本资料和图像文件进行分析识别处理,获取文字及版面信息的过程。二、OCR的技术发展1. OCR传统的解决方案2. OCR前沿的解决方案:文字检测、文字识别文字检测:通用目标检测文字识别:三、OCR的应用...原创 2021-05-24 22:07:00 · 646 阅读 · 0 评论 -
傅里叶变换基础知识
参考文章:信号与系统——傅里叶变换(转载)以时间作为参照来观察动态世界的方法我们称其为时域分析傅里叶同学告诉我们,任何周期函数,都可以看作是不同振幅,不同相位正弦波的叠加。正弦波(Sine Wave,sin和cos的统称)就是一个圆周运动在一条直线上的投影。所以频域的基本单元也可以理解为一个始终在旋转的圆。矩形波在频域和时域分别对应的样子:傅里叶分析究竟是干什么用的?频道:就是频率的通道,不同的频道就是将不同的频率作为一个通道来进行信息传输。很多在时域看似不原创 2020-12-20 21:48:59 · 1482 阅读 · 0 评论 -
《数字图像处理》第五章-图像复原与重建 笔记
参考文章:数字图像处理——第五章(图像复原与重建)一、图像退化/复原的一个模型二、噪声模型一些重要的噪声概率密度函数(PDF)高斯噪声(电路噪声,由低照明度或高温带来的传感器噪声)在空间域和频率域中,高斯噪声在数学上具有易处理性,故实践中常用该噪声模型,以至于高斯模型常用于在一定程度上导致最好结果的场合。高斯随机变量z的PDF如下:瑞利噪声(距离成像噪声)瑞利噪声的PDF如下:概率密度的均值和方差为:a为距离原点的距离。密度的基本形状向右变形原创 2020-12-12 23:01:55 · 906 阅读 · 0 评论 -
《数字图像处理》第四章-频率域滤波 笔记
参考文章:数字图像处理——第四章(频率域滤波)一、傅里叶变换基础知识1. 复数2. 傅里叶级数、傅里叶变换3. 冲激函数及其取样(筛选)性质4. 一维连续函数傅里叶变换对5. 一维离散傅里叶变换对(DFT)6. 二维连续傅里叶变换对7. 二维离散傅里叶变换对8. 卷积定理9. 二维离散傅里叶变换的性质二、频率域滤波基础三、使用低通频率域滤波器平滑图像四、使用高通滤波器锐化图像...原创 2020-12-12 10:44:52 · 4653 阅读 · 1 评论 -
《数字图像处理》第三章-灰度变换与空间滤波 笔记
参考文章:直方图规定化(直方图匹配)数字图像处理:直方图均衡化数字图像处理之直方图均衡化图像处理基本算法-卷积和相关数字图像处理第三版(冈萨雷斯)——第三章灰度变换与空间滤波(part1)《数字图像处理 第三版》(冈萨雷斯)——第三章 灰度变换和空间滤波数字图像处理第三版(冈萨雷斯)——第三章灰度变换与空间滤波(part2)背景:空间域指的是图像平面本身,是直接对图像中的像素进行处理;变换域(eg:频率域)中的图像处理,首先要将图像变换到变换域,在变换域中进行处理,然后再对结果进原创 2020-12-11 17:05:43 · 3495 阅读 · 0 评论 -
《数字图像处理》第二章-数字图像基础 笔记
参考文章:数字图像处理(冈萨雷斯第三版)学习笔记 - Chapter 1 Introduction(1)一、视觉感知要素人眼的结构人眼分辨细节的能力与当前电子传感器是可以类比的。上图是简易的眼球横切面,可以观察到角膜(cornea)、晶状体(lens),还有视网膜(retina)。视网膜就是可以看到东西的地方(成像区域),眼睛看到的图像以投影方式进入眼中。视网膜上布满传感器,影像投影在视网膜上,然后被送入大脑。视网膜上的传感器有两类,一种是锥形传感器(cones),另一种是原创 2020-12-11 02:37:18 · 882 阅读 · 0 评论 -
《数字图像处理》第一章-绪论 笔记
什么是数字图像?一幅图像可以定义为一个二维函数f(x,y)。x和y是空间/平面坐标,任意一对空间坐标(x,y)处的幅值f称为图像在该点的强度或灰度。当x,y和灰度值f都是有限的离散集时,称该图像为数字图像。数字图像由有限数量的元素组成,每个元素都有一个特定位置(坐标)和数值(强度/灰度)。这些元素称为像素。数字图像:为了能用计算机对图像进行加工,需要把连续图像在坐标空间和性质空间都离散化,这种离散化了的图像是数字图像。什么是数字图像处理?数字图像处理是借助于数字计算机来处理数字.原创 2020-12-10 20:30:30 · 644 阅读 · 0 评论 -
图像处理课程复习整理(前四章节/前7个PPT)
本课程是国科大人工智能学院彭思龙老师和杨戈老师共同授课,在考试前看PPT总结一下~考试内容:– 推公式,简单计算(不需要计算器的那种简单计算)– 老师在第一次上课时提到了两个重点:采样定理,基本的变换。一:PPT1 — 图像处理简介,人类视觉机理1. 图像处理简介什么是图像?对图像的不同解释一副二维图像是一个像素点阵,矩阵,曲面(经平滑处理后)其实图像只有一堆数字(灰色图像),因为缺乏人类的认知背景。动态图像有时间序列,有时空的连续性。光子能量..原创 2020-12-19 22:33:59 · 2483 阅读 · 1 评论 -
python函数参数改变的问题
在写这里的代码时,f经过FFT_SHIFT函数的处理,竟然被改变了,所以要再将其还原。python里有可变对象和不可变对象之分。只有传入的是不可变对象时,值才不发生改变,若是可变对象,充当函数参数时要注意了。不可变对象:Number ,String , Tuple,bool可变对象: List , Set , Dictionary等可以改变内部的元素...原创 2020-10-30 21:46:26 · 675 阅读 · 0 评论 -
判断一个数是不是2的整数次幂
用位运算二进制数的位权是以2为底的幂,如果一个整数 m 是 2 的 n 次幂,那么转换为二进制之后只有最高位为 1,其余位置为 0,再观察 m-1 转换为二进制后的形式以及 m&(m-1) 的结果,例如:2 --> 0000 0010 1 --> 0000 0001 2&1 --> 0000 0010 & 0000 0001 = 04 --> 0000 0100 3 --> 0000 0011 .原创 2020-10-30 21:18:38 · 779 阅读 · 0 评论 -
中心化傅里叶变换
参考文章:数字图像频谱中心化研究数字图像有时需要变换到频率做处理,比如滤波等。但直接对数字图像进行二维DFT变换得到的频谱图是高频在中间,低频在四角。为了把能量(在低频)集中起来便于使用滤波器,可以利用二维DFT的平移性质对频谱进行中心化。频谱图比较亮的地方就是低频,因为图像的能量一般都是集中在低频部分。所以推导出来的结论是:对数字图像的每个像素点的取值直接乘以(-1)^(x+y),x和y是像素坐标。这之后再做傅里叶变换,最后即为中心化后的傅里叶变换。代码:# 未中心化的傅里叶变原创 2020-10-30 21:11:33 · 7208 阅读 · 4 评论 -
python代码规范
单独一行的注释标记“#”与待注释的内容中间空一格# padding函数在一个语句后面写注释时,要空一个tabplt.axis('off') # 去掉坐标系函数中的参数不空格plt.imshow(p, cmap='gray')不同函数之间空一行类/主入口(name == ‘main’)与函数之间空两行def padding(f, w, method = 'zero'): passdef twodConv(f, w, method = 'zero'.原创 2020-10-19 20:06:13 · 195 阅读 · 0 评论 -
中科院 2020 年秋季学期 图像处理与分析 编程作业 01
问题 1 :黑白图像灰度扫描实现一个函数 s = scanLine4e(f, I, loc), 其中 f 是一个灰度图像,I 是一个整数,loc 是一个字 符串。当 loc 为’row’时,I 代表行数。当 loc 为’column’时,I 代表列数。输出 s 是对应的相关行或者列的像素灰度矢量。调用该函数,提取 cameraman.tif 和 einstein.tif 的中心行和中心列的像素灰度矢量并将扫描 得到的灰度序列绘制成图。import numpy as npimport cv2impo原创 2020-10-19 20:01:24 · 2525 阅读 · 0 评论 -
高斯滤波理论知识
参考文章:如何确定高斯滤波的标准差和窗口大小高斯滤波和双边滤波原理和python实现高斯滤波就是将灰度图像 和一个高斯核进行 卷积 操作。计算高斯滤波核的过程:原创 2020-10-19 19:47:47 · 855 阅读 · 1 评论 -
手撕卷积理论知识(此文重点是对卷积核逆时针旋转180度°)
参考文章:真正理解卷积(使用Python实现代码),附,python卷积在生活中的意义:一维卷积二维卷积:二维卷积实现可以分为两大步。一是预处理:将卷积核翻转180°,将原始数据扩边(不同的mode(full、valid、same)模式存在不同的扩边方案);二是滑动卷积计算。对卷积核逆时针旋转180度°:法一: #对卷积核w进行逆时针180°翻转 w = np.flipud(w) #上下翻转 w = np.fliplr(w)原创 2020-10-19 19:35:59 · 1043 阅读 · 1 评论 -
为什么做卷积之前要对图像进行padding操作(根据过滤器的大小来padding)?
参考文章:吴恩达-深度学习-卷积神经网络-Padding 笔记如果你用一个3×3的过滤器 卷积 一个6×6的图像,你最后会得到一个4×4的输出,也就是一个4×4矩阵。那是因为你的3×3过滤器在6×6矩阵中,只可能有4×4种可能的位置。这背后的数学解释是,如果我们有一个的图像,用的过滤器做卷积,那么输出的维度就是(n-f+1)*(n-f+1)。在这个例子里是6-3+1=4,因此得到了一个4×4的输出。这样的话会有两个缺点:第一个缺点是,每次做卷积操作,你的图像就会缩小,从6×6缩小原创 2020-10-19 18:36:24 · 2623 阅读 · 0 评论 -
Python: 向量、矩阵和多维数组(基于NumPy库)
参考文章:数值 Python: 向量、矩阵和多维数组Numpy 中的矩阵向量乘法对NumPy中dot()函数的理解np.random.rand()函数numpy.array函数详解numpy常用函数之arange函数一/numpy数组对象创建数组在许多情况下,需生成一些元素遵循某些给定规则的数组,例如填充常量值,增加整数,统一间隔数字,随机数等。numpy.array函数详解:numpy.array(object, dtype=None, copy=True, o原创 2020-10-19 01:15:05 · 5654 阅读 · 3 评论 -
vs添加单行注释和多行注释的方法
方法有很多,找了最顺手的方法作为记录。1. 单行注释光标放在首字母之前,shift+#,取消直接ctrl+z即可。2. 多行注释光标选中想要注释的所有代码,先ctrl+k再ctrl+c取消是先ctrl+k再ctrl+u。参考文章:Visual Studio Code单行和多行注释方法汇总...原创 2020-10-13 11:15:43 · 7544 阅读 · 0 评论 -
图片的float类型和uint8类型转换
def rgb1gray(f, method = 'NTSC'): #防止三通道相加溢出,所以先转换类型 # /255是为了把范围限制在[0,1]之间 f = f.astype(np.float32) / 255 #获取图像的三通道 #法一用cv:b,g,r = cv2.split(f) #法二自己分离: b = f[:,:,0] g = f[:,:,1] r = f[:,:,2] if method == 'average原创 2020-10-12 11:54:34 · 14446 阅读 · 4 评论 -
将一幅彩色 RGB 图像分别提取出R、G、B通道
#获取图像的三通道 blue,green,red = cv2.split(f) #或者 blue = f[:,:,0] green = f[:,:,1] red = f[:,:,2]参考文章:python opencv 提取彩色图像三通道每个像素点灰度值分别是由R、G、B组成的,例如(R:179,G:45,B:9)每个通道范围都是0-255一幅图片的RGB值读取为:(可以看出,每个像素点是三部分—三个通道)array([[[ ...原创 2020-10-08 21:38:11 · 13159 阅读 · 0 评论 -
subplot将多张图片画到一张图里
一个figure对象包含了多个子图,可以使用subplot()函数来绘制子图:subplot(numbRow , numbCol ,plotNum ) 或者 subplot(numbRow numbCol plotNum)numbRow是plot图的行数;numbCol是plot图的列数;plotNum是指第几行第几列的第几幅图 ;位序从1开始。顺序是从左到右,从上到下 #画图-subplot把四个图放在一张图上 plt.figure(figsize=(15,15))..原创 2020-10-08 19:56:36 · 4708 阅读 · 0 评论 -
matplotlib库
引入import matplotlib.pyplot as plt画图代码 #画图 #x坐标轴数据 x = np.linspace(1,256,256) #x轴表示第几个像素点 #y坐标轴数据 y1 = rowData #y轴表示灰度值 y2 = columnData plt.figure() #坐标轴标题 plt.xlabel("pixel order") #x轴上的名字 plt.ylabel(".原创 2020-10-08 00:27:13 · 177 阅读 · 0 评论 -
numpy库的一些函数
1. numpy.linspacenumpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)在指定的间隔范围内返回均匀间隔的数字。在[start, stop]范围内计算,返回num个(默认为50)均匀间隔的样本。2.原创 2020-10-08 00:21:07 · 199 阅读 · 0 评论 -
Python用numpy库对矩阵的操作
1. 导入numpy库:import numpy as np2. 获取矩阵的行和列数 #得到图像的行数和列数 sp = img.shape row = sp[0] column = sp[1] 也可写为如下: row,column = img.shape[:2]3. 对矩阵进行特定行列进行提取操作法一:#取第3行>> M[2]#取第2列>>>> M[:,1]行和列的索引是从零开始。对矩阵原创 2020-10-07 21:26:33 · 892 阅读 · 0 评论 -
Python中if __name__ == ‘__main__‘:语句的作用和原理
入口函数:一个python文件通常有两种使用方法,第一是作为脚本直接执行,第二是 import 到其他的 python 脚本中被调用(模块重用)执行。因此 if __name__ == 'main': 的作用就是控制这两种情况执行代码的过程,在 if __name__ == 'main': 下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执行,而 import 到其他脚本中是不会被执行的。__name__ 是当前模块名,当模块被直接运行时模块名为 __main__ 。这句话的意思就是,原创 2020-10-07 20:07:40 · 355 阅读 · 0 评论 -
使用OpenCV读入图片
import numpy as npimport cv2#首先读入一幅图像img=cv2.imread('pictures/cameraman.tif',cv2.IMREAD_UNCHANGED) #读入完整图片,包括alpha通道cv2.namedWindow('Image',cv2.WINDOW_AUTOSIZE) #窗口大小自动调整为图像大小cv2.imshow('Image',img) cv2.waitKey(0)读入图像:使用函数cv2.imread(filepath,flags原创 2020-10-07 19:52:57 · 1009 阅读 · 0 评论 -
Python基础的学习
对于python,之前有涉及过一点点。但是学的非常不系统,所以先准备花几个小时过一遍基础内容。通过看文字教程来过,在过的过程中做简要记录。参考:廖雪峰的官方网站零、引入Python+关于Python的介绍用任何编程语言来开发程序,都是为了让计算机干活,比如下载一个MP3,编写一个文档等等,而计算机干活的CPU只认识机器指令,所以,尽管不同的编程语言差异极大,最后都得“翻译”成CPU可以执行的机器指令。而不同的编程语言,干同一个活,编写的代码量,差距也很大。完成同样一个任务,可能C语言要写1.转载 2020-09-22 11:26:23 · 485 阅读 · 0 评论