图像处理
风痕依旧
坚持不懈、追求技术巅峰!!!
展开
-
图像处理(一)像素处理(修改尺寸)
import cv2import numpy as npimage = cv2.imread(‘test.jpg’)image = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)hight,width = image.shapeimg = np.zeros((int(1/2hight),int(1/2width)))for index_i,i in enu...原创 2019-07-16 09:42:07 · 1236 阅读 · 0 评论 -
图像处理(十一)高斯差分算法(边缘检测)
高斯差分算法作用于边缘检测,是利用卷积核实现,考虑了各方权重,代码如下:import numpy as npimport cv2path = 'test.jpg'image = cv2.imread(path,0)gau_matrix = np.asarray([[-2/28,-5/28,-2/28],[-5/28,28/28,-5/28],[-2/28,-5/28,-2/28]])...原创 2019-07-20 11:50:29 · 2458 阅读 · 0 评论 -
图像处理(十二)腐蚀、膨胀、开运算、闭运算、梯度运算、顶帽、黑帽
这些图像处理都需基于二值图像腐蚀是用卷积核与图像进行卷积,都为1才为1,达到减少亮区的目的膨胀是用卷积核与图像进行卷积,都为0才为0,有1个不为0就为1,达到增加亮区的目的开运算 是先进行腐蚀,后进行膨胀,达到去外部亮燥的目的闭运算 是闲进行膨胀,后进行腐蚀,达到去内部暗噪的目的梯度运算 是膨胀图-腐蚀图,达到保留边缘的目的顶帽 是原图-开运算,正好跟开运算相反,保留外部噪声...原创 2019-07-20 14:03:39 · 527 阅读 · 0 评论 -
图像处理(三)霍夫变换,直线检测
import numpy as npimport cv2img = cv2.imread(r’…/test.jpg’)#image = cv2.resize(image,(200,200))image = cv2.Canny(img,50,150)theta = np.deg2rad(np.arange(0,180))hight,width = image.shapedistance...原创 2019-07-18 00:03:47 · 208 阅读 · 0 评论 -
深度学习(二)车牌识别(40个类别)
图片加标签——创建数据集——创建模型——开始训练代码如下:import cv2import numpy as npimport osimport torch.nn as nnimport torch.utils.data as Datafrom torch.autograd import Variablefrom torch.utils.data import Dataset,D...原创 2019-07-30 07:08:13 · 2194 阅读 · 5 评论 -
图像处理(十六)SIFT算法(第三天)暂时结束
学习SIFT算法第一天目前学到极值点的计算,极值点是通过泰勒公式拟合函数,导数为0时求出的极值点,极值点是相对插值中心的偏移量,当任意维度的偏移量大于阈值时,要改变关键点的位置,同时在新位置反复插值,直到收敛 ,划线不为为当前无法理解的!!!学到的数学知识:正态分布,泰勒公式正态分布——用来计算权重,首先转换成标准正太分布函数f(u),.每一个u就对应一个概率泰勒公式——用来拟合函数,原因...原创 2019-07-25 22:11:01 · 563 阅读 · 0 评论 -
图像处理(十三)LBP特征提取
LBP 图 与灰度图很像,只是将灰度转为LBP值那么什么事LBP值LBP值就是以灰度图中每个像素点的灰度为阈值,周围灰度超过阈值为1,否则为0,然后将1与0排列为2进制数,最后换算成10进制的数字,这个数字就是该点的LBP值。周围像素点的范围及形状又将LBP值分成不同类别:首先正方形以33 8位为常见:分别是image[h-1,w-1]image[h-1,w]image[h-1,w+1]...原创 2019-07-23 11:27:59 · 2573 阅读 · 0 评论 -
图像处理(十七)SURF,SIFT,ORB总结
官方文档:https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_feature2d/py_matcher/py_matcher.html计算速度:ORB>>SURF>>SIFT(各差一个量级)旋转鲁棒性:SURF>ORB~SIFT(表示差不多)模糊鲁棒性:SURF>O...原创 2019-07-27 18:42:14 · 1776 阅读 · 0 评论 -
深度学习之torch(一)MINIST手写字符分类
从数据集的建立,到模型的建立,到训练,到预测!!!中间遇到很多坑数据建立:MSELoss损失函数要求独热编码,CrossEntropyLosss损失函数要求预测端是字符型,label要求长整型,函数将label转成独热编码模型建立:全连接时需将输入的batch_size与其它维度共4维转成2维训练:没什么好说的预测:也没什么好说的,总之实现对输入图片的预测功能附代码:训练代码,其中数...原创 2019-07-28 11:15:18 · 1236 阅读 · 0 评论 -
图像处理(十)旋转矩阵,缩放矩阵
矩阵的目的就是线性变换,线性变换分平移、旋转、缩放平移矩阵:1 0 x00 1 y00 0 1旋转矩阵 cos -sinsin cos缩放矩阵 m 00 n代码实现:仅实现旋转和缩放import numpy as npimport cv2path = 'test.jpg'image = cv2.imread(path,0...原创 2019-07-20 11:03:05 · 2356 阅读 · 0 评论 -
图像处理(九)高斯金字塔及拉普拉斯金字塔
高斯滤波的核就是一个求平均值的卷积核高斯金字塔也是一个高斯核,只是步长为2,卷积后图片缩小二倍。高斯金字塔的目的是在图像不同大小时可以获得不同的信息,比如说图像较小时可以获得轮廓,图像较大时可以获得细节使用函数cv2.pyrDown(image)拉普拉斯金字塔作用后的效果就是不同层次下提取边缘,原理就是基于高斯金字塔下,从高斯金字塔塔尖开始,每层图片扩大二倍,与下一层做差,得到的新图使用函...原创 2019-07-19 22:43:36 · 2248 阅读 · 0 评论 -
图像识别(一)车牌识别
步骤:读入图片——转灰度图——高斯过滤——均值过滤——sobel提取边缘——图像二值化——膨胀——腐蚀——膨胀——提取轮廓——遍历所有轮廓——对轮廓拟合多边形——求出最小矩形——对矩形进行筛选——在图像中截取矩形框——ORC识别字符(识别误差太大,待续)import numpy as npimport cv2import skimageimport pytesseractfrom PI...原创 2019-07-29 17:20:39 · 1897 阅读 · 0 评论 -
图像处理(二)距离变换
距离变换就是将距离变换为灰度,距离是矩阵的秩中任一点与秩外的距离的最小值,效果图:代码如下:import numpy as npimport cv2image = cv2.imread(‘test.jpg’)image = cv2.resize(image,(100,100))image = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)hight,wi...原创 2019-07-16 11:26:33 · 890 阅读 · 0 评论 -
图片处理(四)傅里叶变换
基于傅里叶变换的高通及低通傅里叶变换是将空间域转换成频率域,在空间域中灰度变化梯度在频域率中表现为频率的大小,灰度梯度变化大(频率达)意味着图片约锐化,一般图片中边界位置就是梯度变化较大的地方。利用傅里叶变换可以实现边界提取,去噪等操作,下面代码实现:首先低通,低通关键点是做一个mask掩膜,初始化一张图,高频部位是0,低频部位是1,将原频率图与mask乘积去除掉高频部位,从而实现低通im...原创 2019-07-18 15:02:48 · 903 阅读 · 0 评论 -
图片处理(五)robert、prewitt、sobel算子边界检测
robert算子其实就是一个22数组,1,-1对角线,是一个卷积核,目的就是用差分法求出边界,此法比较粗糙prewitt算子是33卷积核,两边1,-1沿中间或对角线对称sobel算子考虑了距离权重,不是一味的都是1或-1,而在prewitt的基础上中间的数字是2或-2,较prewitt更先进robert代码如下:import numpy as npimport cv2path = r...原创 2019-07-18 20:10:18 · 1517 阅读 · 0 评论 -
图像处理(六)滤波降噪
图像滤波分为均值滤波、高斯滤波、中值滤波、双边滤波,其中中值滤波对椒盐噪声有奇效均值滤波:cv2.blur(img,元祖:卷积核大小) 对于椒盐噪声有效高斯滤波:cv2.GaussianBlur(img,元祖:卷积核大小,) 对于高斯噪声有效中值滤波:cv2.medianBlur(img,核的大小) 对椒盐噪声有奇效双边滤波:cv2.bilateralFilter(img,核的大...原创 2019-07-18 22:17:26 · 3394 阅读 · 1 评论 -
图像处理(七)图像增强
图像增强的本职就是增加灰度级,也就是灰度值的范围,可以在灰度直方图中很明显的看到!通常增加灰度级的方法未img*a a>1对比度增加反之减少,img+b b>0亮度增加反之减少。增加灰度级的函数:1)伽马变换:伽马变换需要对灰度进行归一化 img/255函数np.power(img/255,伽马系数0.4为例) 系数越大越暗,超过1时会比原图暗,越小越亮,进行伽马变换后系...原创 2019-07-19 09:46:05 · 833 阅读 · 0 评论 -
图像处理(十四)HOG特征提取
HOG特征提取分四步一、将在x,y方向上的差分图谱笛卡尔坐标转换成极坐标获取HOG特征,HOG特征分两副特征图谱,分别是长度图谱、角度图谱二、分别对长度图谱与角度图谱进行切割,重组,切割的最小单元为重组后的细胞元,也就是将原二维图谱变为四维图谱三、将每个细胞元进行提取特征,也就是提取特征向量(角度、长度),值得注意的是提取特征向量时需考虑权重,也就是对应角度在左右两边所占的比例四、每个细胞...原创 2019-07-24 10:35:38 · 1945 阅读 · 0 评论 -
图像处理(八)图像插值算法
五种插值算法,目的是用于图像扩大时超分辨率,缩小不失真,常用于放大图片一、最近邻插值这种方法失真严重但运算简单,缩小图片可考虑cv2.resize(img, (0, 0), fx=倍数, fy=倍数, interpolation=cv2.INTER_NEAREST)二、双线性插值这种方法最常用, 是resize默认值cv2.resize(img, (0, 0), fx=倍数, fy=倍...原创 2019-07-19 15:54:31 · 3488 阅读 · 0 评论 -
图像处理(十五)ORB特征检测
ORB特征检测有直接的API,可以直接调用ORB原理:分三部一、提取特征点:ORB特征点其实就是边界,灰度变化较大的地方,因为ORB特征点的定义就是与周围点不一样的点,与转换成LBP图谱类似,以某点为圆心,选择合适的点数作为比较值,在总数目范围内规定一个阈值,不一样的点数超过这个阈值,即为特征点。二、获取特征点描述:ORB特征点描述与LBP特征图谱类似,都是以二进制表示,选点方式也是一样,圆...原创 2019-07-24 16:47:42 · 959 阅读 · 0 评论 -
深度学习(三)FCN模型torch实现
FCN是先通过5层缩小2的5次方,然后通过反卷积扩大2的5次方,期间采用了残差模型数据集是自己使用labelme标注的,只标注了40个数据,代码可运行,如下:import numpy as npimport torchimport cv2import torch.nn as nnimport osfrom torch.utils.data import Dataset,DataLoa...原创 2019-08-01 20:57:51 · 1451 阅读 · 3 评论