- 博客(22)
- 资源 (1)
- 收藏
- 关注
原创 记一个奇怪的报错
一个奇怪的报错最近在运行一个python程序时出现了一个奇怪的报错,如图所示说他奇怪主要是因为昨天运行这个程序时还好好的今天却又不行了,于是我把报的错误信息贴到了网上进行搜索,结果发现网上根本没有一个与此类似错误的文章,于是放弃网上检索,开始自己排查错误但是自己苦思冥想了好久也没解决。后来我想运行一下其他程序,结果发现其他程序也报了同样的错误,这时我想到难道是我的python运行环境挂了吗?于...
2020-02-28 11:55:32 185
原创 傅里叶变换记录
傅里叶变换作为工科生,傅里叶变换应该是一个普遍会涉及到的知识点。傅里叶变换是把某些域的问题转化到了频率域,有些在时间域内很难解决的问题转到频率域后可能一下子就变得非常简单了。图像方面傅里叶变换应用图像处理一般包括空间域处理和频率域处理。空间域处理主要包括灰度变换和空间滤波两种形式。频率域处理是先将图像变换到频率域,然后在频率域对图像进行处理,最后再通过反变换将图像从频率域转换到空间域。p...
2020-02-23 16:13:51 241
原创 cv2.calcHist代码记录
cv2.calcHistimport cv2import numpy as np import matplotlib.pyplot as plt img = cv2.imread("20.jpeg")cv2.imshow("original",img)gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)hist = cv2.calcHist(...
2020-02-22 12:00:04 978
原创 直方图
直方图图像处理中有一个很重要的知识点是讲直方图的,从图形上看直方图的横坐标是像素点的灰度级,纵坐标是这些该灰度级对应的像素个数。归一化直方图上面介绍的直方图是传统意义上的直方图,有时为了便于表示也会采取另外一种叫做归一化直方图的图来进行表示。归一化直方图的横坐标仍然表示的是灰度级,但是纵坐标表示的却是灰度级出现的频率。python例程import cv2import matplotli...
2020-02-22 11:31:34 257 1
原创 cv2.drawContours()
cv2.drawContours()cv2.drawContours(image, contours, contourIdx, color, thickness=None, lineType=None, hierarchy=None, maxLevel=None, offset=None)这个函数的功能是绘制轮廓,参数image是绘制轮廓的目标图像,第二个参数为轮廓本身,第三个参数为绘制哪一...
2020-02-20 17:56:32 1475
原创 cv2.boundingRect()和cv2.rectangle()
cv2.boundingRect()和cv2.rectangle()cv2.boundingRect(img)这个函数可以获得一个图像的最小矩形边框一些信息,参数img是一个二值图像,它可以返回四个参数,左上角坐标,矩形的宽高,一般形式为:x,y,w,h = cv2.boundingRect(img)配合cv2.rectangle()可以画出该最小边框,cv2.rectangle(img,...
2020-02-20 17:01:42 15169 1
原创 形状场景算法比较轮廓
形状场景算法opencv3开始,有了专有模块shape,该模块中的形状场景算法能够更加有效的比较形状。计算形状场景距离opencv提供了使用距离作为形状比较的度量标准。这是因为形状之间的差异值和距离值有相似之处。比如两个形状一模一样时距离值和差值都等于0.opencv提供了函数cv2.creatShapeContextDistanceExtractor(),用于计算形状场景距离。其使用的...
2020-02-20 15:41:25 1017
原创 cv2.putText
cv2.putTextcv2.putText()的功能是在一个图片上写文字cv2.putText(I,‘there 0 error(s):’,(50,150),cv2.FONT_HERSHEY_COMPLEX,6,(0,0,255),25)各参数依次是:图片,添加的文字,左上角坐标,字体,字体大小,颜色,字体粗细参考链接:https://blog.csdn.net/GAN_player/ar...
2020-02-17 14:20:28 5546
原创 flatten函数
flattena.flatten():a是个数组,a.flatten()就是把a降到一维,默认是按行的方向降 。代码import cv2o1 = cv2.imread("cs1.bmp")gray = cv2.cvtColor(o1,cv2.COLOR_BGR2GRAY)HUM1 = cv2.HuMoments(cv2.moments(gray)).flatten()print(o1...
2020-02-15 16:14:03 1348
原创 sublime光标变成下划线
电脑sublime光标变成下滑横线解决办法:笔记本:fn+insert(delete)台式或者insert和delete键分开的键盘:直接insert
2020-02-10 11:27:45 4993 1
原创 图像处理之矩特征
矩特征比较两个轮廓最简单的方法就是比较两个轮廓的轮廓矩。轮廓矩代表了一个轮廓、一幅图像、、一组点集的全局特征。矩的计算retval = cv2.moments(array[,binaryImage])array可以是点集,也可以是灰度图像或二值图像binaryImage为true时,array内所有非零值都被处理为1。该参数仅在参数array为图像时有效零阶矩表示一个轮廓的面积中心距...
2020-02-08 17:47:41 639
原创 Canny边缘检测
Canny边缘检测步骤步骤1:去噪声步骤2: 计算梯度的方向和幅度步骤3:非极大值抑制。步骤4:确定边缘。使用双阈值算法确定最终的边缘信息例程import cv2o = cv2.imread("20.jpeg",cv2.IMREAD_GRAYSCALE)r1 = cv2.Canny(o,150,550)r2 = cv2.Canny(o,32,100)cv2.imshow("...
2020-02-06 11:31:32 176
原创 形态学梯度运算、礼帽运算
形态学梯度运算形态学梯度运算时用原图像的膨胀图像减去腐蚀图像,可以获得原图像的前景边缘礼帽运算礼帽运算时运用原始图像减去其开运算的操作,礼帽运算可以得到噪声信息或比原始图像边缘更亮的边缘信息黑帽运算黑帽运算时运用闭运算图像减去原始图像...
2020-02-05 15:19:10 536
原创 膨胀
膨胀膨胀操作是形态学中另外一种基本操作。膨胀操作和腐蚀操作是相反的。核心总结如果结构元中任意一点处于前景图像中,就将膨胀结果图像中对应像素点处理为前景色如果结构元完全处于前景图形外,就将膨胀结果图像中对应像素点处理为背景色自己的总结,如有错误希望网友不吝赐教,谢谢...
2020-02-05 12:18:10 429
原创 图像处理之平滑处理总结
2D卷积2D卷积可以自定义卷积核,自主性更大。使用自主性卷积核实现卷积核操作的函数是 cv2.filter2D() dst = cv2.filter2D(src,ddepth,kernel,anchor,delta,borderType)src是原始图像ddepth是处理结果的图像深度,一般使用-1表示使用和原始图像一样的图像深度kernel,是卷积核,是一个单通道的数组a...
2020-02-04 18:36:03 1401
原创 阈值处理
阈值处理阈值处理指剔除图像内像素高于一定值或低于一定值的像素点,例如将阈值设置为127,将大于127的像素点设置为255,将低于127的像素点设置为0,然后就可以得到一幅二值图像例子import cv2img = cv2.imread("2.jpg",0)t,rst = cv2.threshold(img,127,255,cv2.THRESH_BINARY)cv2.imshow("2"...
2020-02-04 10:41:51 430
原创 图像处理之掩模
什么是掩模?自己的理解:一块模,可以用它得到感兴趣区域剔除不感兴趣区域,可以类比pcb腐蚀电路过程,其中给覆铜板上贴的黑色电路墨线就相当于掩模,通过这些墨线可以保护覆铜板上我们想要的电路部分,而把没有墨线的部分腐蚀掉例子bitwise_and(InputArray src1, InputArray src2,OutputArray dst, InputArray mask=noArray()...
2020-02-03 19:48:16 1528
原创 HSV色彩空间
基础知识HSV色彩空间从心里学和视觉角度出发。提出人眼的色彩和知觉主要包含三要素:H:色调S:饱和度V:亮度1.色调色调的取值范围为[0,360]8位图像每个像素点所能表示的灰度级为256个,所以需要映射映射后色调值和对应颜色:0 红色30 黄色60 绿色90 青色120 蓝色150 品红色一种应用可以通过分析得到肤色的hsv值,进而根据肤色来查找人脸区域饱和度...
2020-02-03 17:37:52 1248
原创 numpy几个知识点
randint()和randrange()区别 randint(start, end) 相当于 randrange(start, end, 1) np.random.randint()与random.randint()区别random.randint()方法里面的取值区间是前闭后闭区间,而np.random.randint()方法的取值区间是前闭后开区间np.random.randint...
2020-02-03 15:30:48 143
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人