- 博客(23)
- 资源 (1)
- 收藏
- 关注
原创 数字图像处理_012_(图像直方图比较,图像直方图均衡化)
直方图比较import numpy as npimport matplotlib.pyplot as pltimport cv2 as cvdef show(img): if img.ndim==2: plt.imshow(img,cmap='gray') else: img2=cv.cvtColor(img,cv.COLOR_BGR2RGB) plt.imshow(img2) plt.show()img1=cv.imrea
2021-09-17 09:18:34
270
原创 数字图像处理_011_(铅笔颜色选择,字母提取)
1 实例:字母提取步骤:1.获取图片2.对图片降低噪声,模糊处理(均值模糊,高斯模糊等)3.设置结构元并对图片进行形态学处理(开、闭运算)4.对各个字母进行轮廓提取5.对轮廓提取后的字母进行边界分割具体代码实现:import numpy as npimport matplotlib.pyplot as pltimport cv2 as cvdef show(img): if img.ndim==2: plt.imshow(img,cmap='gray')
2021-09-15 17:20:19
494
原创 数字图像处理_08.2_(高斯图像金字塔,Laplacian图像金字塔)
Laplacian图像金字塔的实现方法是:某层图像减去下一级上采样后的图像。Li=Si−Pyup(Si+1)L_i=S_i-Pyup(S_{i+1})Li=Si−Pyup(Si+1)这里以图像融合例子对图像金字塔进行学习。两张图片分别记为图片A0A_0A0、B0B_0B0。1.对A0A_0A0下采样,依次得到不同大小的下采样图片A1A_1A1,A2A_2A2,……,AnA_nAn。2.有1中的图片,获得图片AAA的Laplacian金字塔图片LA0LA_0LA0,LA1LA_
2021-09-14 19:46:10
257
原创 数字图像处理_09._(轮廓提取应用实例(选择金鱼))
在学习了轮廓提取的方法之后,以选择金鱼提取作为实例:具体的步骤可分为:1.获取金鱼图片,以三通道进行读取。2.将金鱼图片通道进行分离。3.分析各通道主要影响。4.用影响最大的通道进行变换。5.将图片进行闭运算。6.画出轮廓并进行填充以得到掩膜(mask)。7.将mask作为通道并入图片得到透明背景的图片。具体实现代码:1获取金鱼图片,以三通道进行读取。2.将金鱼图片通道进行分离。img=cv.imread('pic/goldfish500x500.jpg')show(img)
2021-09-13 20:03:55
585
原创 数字图像处理_08.1_(上采样,下采样)
1、上采样上采样不等同于直接将图片进行放大两倍。上采样也是将图像的长宽扩大两倍。但要进行如下两步:1 隔行隔列插入0;2 高斯滤波器X4进行滤波高斯滤波核K=4∗116[1464141624164624362464162416414641]K=4*\frac{1}{16}\left[ \begin{array}{ccc} 1&4&6&4&1\\ 4&16&24&16&4\\ 6&
2021-09-13 16:08:59
1051
原创 数字图像处理_07.2_(顶帽变换,击中击不中原理)
1、顶帽变换顶帽变换是在原图像基础上做出的形态学变换 原图像III,即用原图像减掉原图像的开运算。类似地,底帽变换就是用原图像减掉原图像的闭运算。代码实现具体例子:用顶帽变换实现对模糊文章的复原,具体包括如下几步:1获取原图像,2设计结构元,3对原图像进行颜色翻转,4对图像进行开运算,5用图像减掉开运算后的图像,6二值化后翻转颜色I= cv.imread('pic/page760x900.jpg',0)Ic=255-I #翻转颜色K=np.ones((21,21),np.uint
2021-09-13 15:38:05
967
原创 C++学习笔记_03_引用(reference)
引用的实质就是起别名(内部的指针常量int & aRef=a;//本质是int*const aRef=&a;)int &b=a;1.引用基本语法引用的用途就是起别名引用必须要初始化引用一旦初始化后不可以进行修改对数组建立引用(例如:int &b[10]=a;)#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;void test01(){
2021-05-10 00:07:08
103
原创 C++学习笔记_02_C++对C语言的增强
对全局变量检测增强对函数检测增强,参数类型检测,返回值检测,传参个数检测对类型转换增强,malloc返回值为void,c可以不用转换,C++要转换对struct增强,c中struct不可以有函数方法,并且调用时必须使用struct关键字,而c++中可以加入函数方法,并且在调用时可以不加struct关键字。对bool类型进行增强,c中没有bool类型,c++中有bool类型,且c++bool类型下,非0为真,0为假,bool类型的大小为1(sizeof(bool)=1)三目运算符增强,c语言中三目.
2021-05-09 09:53:50
122
6
原创 C++学习笔记_01_双冒号作用域、using、namespace的使用
1.::双冒号作用域直接::意味着全局作用域#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;int atk = 200;void test01() { int atk = 100; cout << "攻击力为:" << atk << endl; //::全局作用域 cout << "全局攻击力为:" << ::atk <&
2021-05-08 11:42:01
507
原创 数字图像处理_07.1_(形态学处理,腐蚀,膨胀)
本章学习图像处理中的形态学处理,膨胀,腐蚀1.腐蚀(erode)、膨胀(dilate)1)结构元(StructingElement)在形态学处理中经常用到,和前几章所学的卷积核、算子意思类似,都是用于对图片处理的小矩阵。腐蚀和膨胀均用到了结构元。cv中提供了很多结构元的类型:十字型:cv.MORPH_CROSS,矩形:cv.MORPH_RECT,椭圆形:cv.MORPH_ELLIPSE结构元是二维矩阵,内部元素去整数0或者1。对二值图,元素取0或255,对应黑与白。对灰度图,取0-255对于
2021-05-07 22:11:35
586
1
原创 数字图像处理_06_(阈值分割——直方图阈值、三角法阈值,迭代法阈值,大津法阈值和自适应阈值)
本章将学习阈值分割,即找到一个合适的阈值实现数字图像的二值化。阈值分割有很多种方法,本章学习直方图阈值、三角法阈值,迭代法阈值,大律法阈值,和自适应阈值。1.直方图阈值图像直方图阈值分割法:算法描述:根据图像的灰度直方图寻找阈值。算法特点:适应于于直方图为双峰的图像。绘制直方图代码:plt.hist(img.ravel(),256,[0,256])或者plt.hist(img.flatten(),np.arange(-0.5,256,1),color='g')绘制二值图:_,img_b
2021-05-02 22:14:36
13614
2
原创 数字图像处理_05_(图像锐化与边缘检测——Premittt算子、Roberts算子、Sobel算子、Scharr算子、Laplacian算子、LoG算子、Canny算子)
本章将介绍在图像处理中常用到的几个卷积核(算子)实现图像的边缘检测和锐化操作,有Premittt算子、Roberts算子、Sobel算子、Scharr算子、Laplacian算子、LoG算子、Canny算子。1.Premittt算子介绍:Prewitt算子是一种一阶微分算子的边缘检测,利用像素点上下、左右邻点的灰度差,在边缘处达到极值检测边缘,去掉部分伪边缘,对噪声具有平滑作用 。原理:其原理是在图像空间利用两个方向模板与图像进行邻域卷积来完成的,这两个方向模板一个检测水平边缘,一个检测垂直边缘。水
2021-04-29 18:54:18
3043
原创 基于人脸识别的考勤记录项目
写在前面,通过小项目来驱动学习和实践是一种进步很快的方法,本文就是介绍一个基于人脸识别的考勤小项目(Python)。项目学习自一位Youtuber。1.前期知识1)了解face_recognition库首先,face_recognition是一个基于Python 的人脸识别库,它提供了一个命令行工具和大量的人脸识别相关的工具与方法,让你可以对图像进行人脸识别的操作。其次,使用了dlib最先进的人脸识别技术构建而成并具有深度学习功能,该模型在Labeled Faces in the Wild基准中
2021-04-27 14:27:41
1510
8
原创 数字图像处理_03_(图像几何变换——图像的放大缩小,平移变换,错切变换,镜面变换,旋转变换,透视变换)
图像变换,这里介绍了图像的放大缩小,平移变换,错切变换,镜面变换,旋转变换,透视变换。原素材图像为:1.图像的裁剪及放大和缩小可以用图像所对应的矩阵本身进行裁剪img2=bear[50:400,60:280,:]#y,x,通道对图像的放缩变换可以使用OpenCV自带的函数:img3=cv.resize(bear,(400,400),interpolation=cv.INTER_LINEAR)img3=cv.resize(bear,(400,400))img3=cv.resize(bea
2021-04-22 18:50:39
1151
原创 数字图像处理_02.3_(图像线性,非线性变换——对数变换,gamma变换)
1.图像的线性变换图像的线性变换S=k×r+bS=k\times r+bS=k×r+b其中 rrr 为输入变量,SSS为输出变量,k,bk,bk,b为线性变换中的倍数因子和偏移因子。当0<k<10<k<10<k<1时,对灰度压缩,整体变灰变暗。当k=1,b=0k=1,b=0k=1,b=0时,和原图像相同。当k>1k>1k>1时,对灰度拉伸,对比明显,变亮。当k<0k<0k<0时,亮处变暗,暗处变亮。代码实现:k=
2021-04-21 22:09:33
3375
原创 数字图像处理_02.2_(图像代数运算)
1.图像代数运算简介图像的代数运算通常是指两幅图像,或者多幅图像通过加、减、乘、除代数运算以得到输出图像的方法。如果记输入图像为h(x,y)h(x,y)h(x,y),g(x,y)g(x,y)g(x,y),输出图像为f(x,y)f(x,y)f(x,y)。则具体的图像代数运算形式为:f(x,y)=h(x,y)+g(x,y)f(x,y)=h(x,y)−g(x,y)f(x,y)=h(x,y)∗g(x,y)f(x,y)=h(x,y)/g(x,y)f(x,y)=h(x,y)+g(x,y) \\ f(x,y)=
2021-04-20 21:46:49
3592
原创 数字图像处理_02.1_(图像基础)
1.图像类型图像类型可以分为三种,分别为二值图,灰度图,彩色图。二值图,顾名思义只有0,255两种值,黑白两种颜色灰度图,常以8位0-255灰度值的灰度图。彩色图,彩色图分为彩色图和伪彩色图,彩色图有RGB三种通道,每个通道0-255个值,而伪彩色图为直接0-255代表一种颜色区分只有一种通道(用处甚微,以后所称彩色图均为三通道彩色图)2.图像矩阵表示图像为二维矩阵表示。灰度图为二维矩阵表示,彩色图为三位矩阵表示。分辨率的概念就是水平和竖直方向单位像素的个数。img.ndim==3i
2021-04-16 22:28:53
923
3
原创 数字图像处理_01.2_(基础绘图函数)
Gamma公式展示 Γ(n)=(n−1)!∀n∈N\Gamma(n) = (n-1)!\quad\foralln\in\mathbb NΓ(n)=(n−1)!∀n∈N 是通过 Euler integralΓ(z)=∫0∞tz−1e−tdt .\Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,.Γ(z)=∫0∞tz−1e−tdt.
2021-04-15 15:48:55
196
原创 数字图像处理_01.1_(图像读取)
图像读取原图为:#导入绘图所用库import numpy as npimport matplotlib.pyplot as pltimport cv2 as cv图像的读取img=cv.imread('pic/blossom500x500.jpg')cv.imshow('blossom',img)cv.waitKey(0) #waitKey中的参数是等待键盘响应时间,值为0代表一直循环cv.destroyAllWindows()窗口显示为:同时,图片的读取可以添加参数读取灰度
2021-04-14 17:22:18
309
原创 数字图像处理_01_(前期Python基础)(学习自火力教育)
Jupyter相关操作模式(编辑模式,命令模式)增加编辑(快捷键A向上,B向下,DD删除Cell)运行Cell(1.点击运行;2.快捷键shift+enter)模式转换代码code Ctrl+M Ymarkdown Ctrl+M Mraw Ctrl+M R涉及属性1.dtype :数据类型,包括float32,uint8,int等。2.shape :数组大小尺寸,(2,3)为2行3列矩阵,size同。3.ndim :即为n维矩阵创建基础创建
2021-04-13 16:53:45
204
原创 快速安装Python常用库
快速安装Python的各种库Python在下载第三方库时速度太慢,缘由是Python中的资源来自于国外,这里给出国内的镜像下载源。包含图像处理和机器学习常用的库。pip install numpy matplotlib -i http://pypi.douban.com/simple --trusted-host pypi.douban.compip install pandas scipy scikit-learn scikit-image -i http://pypi.douban.com/sim
2021-04-12 19:19:51
565
5
原创 Python在更换路径下仍出现pip安装错误:fatal error in launcher: unable to create process using
Python在更换路径下仍出现pip安装错误:fatal error in launcher: unable to create process using##错误原因python安装时更改了环境变量,但是pip并未更新##解决方法在cmd下执行如下命令python -m pip install --upgrade pip更新pip后显示为重新更新pip后即可安装各种库...
2021-04-12 18:49:51
442
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人