自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 六月刷题02——字符串

字符串

2022-06-02 21:49:44 147

原创 六月刷题01——数组

数组

2022-06-01 21:22:59 135

原创 五月刷题27——图

五月刷题27——图前言一、今日题目二、解题思路1.2. 797. 所有可能的路径3. 851. 喧闹和富有4. 959. 由斜杠划分区域今日刷题内容:图前言一个算法废材的刷题之路开更了, 更新每天刷题的题解内容注重个人理解,看难度更新题目数量题目来源于力扣争取每日都能做出至少一题语言java、python、c\c++一、今日题目只做了两题,昨天没多少时间写题解,今天补上,后面两题等后面不那么忙再刷吧1791. 找出星型图的中心节点797. 所有可能的路径851. 喧闹和富

2022-05-28 09:16:31 155 2

原创 五月集训总结——来自阿光

文章目录前言一、为什么加入星球?二、在这次集训中的收获三、接下来的打算总结前言自5月4号进入英雄算法联盟以来已经将近一个月了,以下内容有感而发。为什么叫阿光?因为我相信未来的日子充满阳光。一、为什么加入星球?直面恐惧      算法其实一直算我的短板,之前考研的时候一开始打算考一个好点的学校,但是因为要考数据结构,尝试过复习一个月,最终觉得太难而放弃了。直到今年年初确定自己要走的方向,发现不会数据结构的程序员寸步难行。所以下定决心

2022-05-27 12:10:29 1879 3

原创 五月刷题26——并查集

五月刷题26——并查集前言一、今日题目二、解题思路1. 990. 等式方程的可满足性2. 1319. 连通网络的操作次数3. 886. 可能的二分法4.今日刷题内容:并查集前言一个算法废材的刷题之路开更了, 更新每天刷题的题解内容注重个人理解,看难度更新题目数量题目来源于力扣新开专栏,争取每日都能做出至少一题=v=语言java、python、c\c++一、今日题目今天只做完了一题,没剩下多少时间了,改日再补完剩下的吧990. 等式方程的可满足性1319. 连通网络的操作次数

2022-05-27 09:14:25 105 1

原创 五月刷题03——排序

排序

2022-05-26 11:48:45 97

原创 五月刷题01——数组

数组

2022-05-25 10:15:16 88

原创 五月刷题02——字符串

五月刷题02——字符串前言一、今日题目二、解题思路1. 500. 键盘行★☆☆☆☆2. 1160. 拼写单词★☆☆☆☆3. 1047. 删除字符串中的所有相邻重复项★☆☆☆☆4. 1935. 可以输入的最大单词数★☆☆☆☆今日刷题内容:字符串前言一个算法废材的刷题之路开更了, 更新每天刷题的题解内容注重个人理解,看难度更新题目数量题目来源于力扣新开专栏,争取每日都能做出至少一题=v=语言java、python、c\c++一、今日题目500. 键盘行★☆☆☆☆1160. 拼写单

2022-05-25 09:44:04 116

原创 五月刷题22——有序集合

有序集合

2022-05-22 22:00:13 952

原创 五月刷题21——堆

2022-05-21 21:40:32 269

原创 五月刷题20——二叉搜索树

二叉搜索树

2022-05-20 22:22:38 278

原创 五月刷题19——二叉树

二叉树的前中后遍历

2022-05-19 06:18:35 191

原创 五月刷题18——树

2022-05-18 16:41:43 218

原创 五月刷题17——广度优先搜索

广度优先搜索

2022-05-18 15:53:27 88

原创 五月刷题16——队列

刷题

2022-05-16 21:13:11 151

原创 Python中列表和字符串

列表和字符串的互相转换问题

2022-05-16 17:33:05 102

原创 字典基础操作

1. 定义字典a. 利用{}创建字典dic = {}dic = {"name": "mike", "age": 22, }b.利用dict()方法创建字典dic = dict() # 创建空字典dic = dict(name ="mike", age= 22, ) # 传入关键字dic = dict(zip(['one', 'two', 'three'], [1, 2, 3])) # 映射构造字典dic = dict([('one', 1), ('two', 2), ('three'

2021-08-17 23:00:17 145

原创 1. 爬虫基础

python爬虫1. 爬取网页内容a. 使用urllib库# 导入模块import urllib.requestheaders = { "User-Agent": "User-Agent:Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11"}def use_urllib(url=None, headers=None): """ 对于一些有反爬措施的网站,需要利用headers模仿浏览器访问

2021-08-16 23:54:43 99

翻译 14. 图像均值化

学习直方图均衡化的概念并使用它来改善我们图像的对比度。考虑像素值仅限于某些特定值范围的图像。例如,更亮的图像会将所有像素限制为高值。但是一个好的图像将包含来自图像所有区域的像素。因此,您需要将此直方图拉伸到两端(如下图所示,来自维基百科),这就是直方图均衡的作用(简单来说)。这通常会提高图像的对比度。阅读有关直方图均衡化Histogram Equalization的维基百科页面以获取更多详细信息。它有一个很好的解释,并附有示例,因此您在阅读之后几乎可以理解所有内容。这里我们将看到OpenCV 功能。1

2021-08-09 10:09:43 1739

翻译 13. 图像中的直方图

概述:您可以将直方图视为图形或绘图,它可以让您全面了解图像的强度分布。它是一个图,其中 X 轴上的像素值(范围从 0 到 255,不总是)和 Y 轴上图像中相应的像素数。这只是理解图像的另一种方式。通过查看图像的直方图,可以直观地了解该图像的对比度、亮度、强度分布等。今天几乎所有的图像处理工具都提供直方图功能。您可以看到图像及其直方图。 (请记住,此直方图是为灰度图像绘制的(单通道),而不是为彩色图像绘制的)。直方图的左侧区域显示图像中较暗像素的数量,右侧区域显示较亮像素的数量。从直方图中,您可以看到

2021-08-09 09:19:52 474

翻译 11. 霍夫线检测

原理霍夫变换是一种流行的检测任何形状的技术,前提是您可以用数学形式表示该形状。即使它被破坏或扭曲一点,它也可以检测到形状。我们将看到它对一条线是如何工作的。一条直线可以表示为 y=mx+c 或以参数形式表示,如 ρ=xcosθ+ysinθ 其中 ρ 是原点到直线的垂直距离,θ 是这条垂直线与水平轴形成的夹角以逆时针方向测量(该方向因您表示坐标系的方式而异。OpenCV 中使用此表示)。参考下面的图像:所以如果线在原点以下通过,它会有一个正的 rho 并且角度小于 180。如果它在原点之上,而不是取大

2021-08-05 17:34:28 732

翻译 10. 傅里叶变换

傅里叶变换用于分析各种滤波器的频率特性。对于图像,使用 2D 离散傅立叶变换 (DFT) 来查找频域。一种称为快速傅立叶变换 (FFT) 的快速算法用于计算 DFT。有关这些的详细信息可以在任何图像处理或信号处理教科书中找到。参考傅里叶变换1. Numpy 中的傅立叶变换首先,我们将看到如何使用 Numpy 找到傅立叶变换。 Numpy 有一个 FFT 包来做到这一点。 np.fft.fft2() 为我们提供了一个复杂数组的频率变换。它的第一个参数是输入图像,它是灰度的。第二个参数是可选的,它决定了输出

2021-08-05 14:27:40 315

翻译 9.2 图像拟合轮廓

import cv2 as cvimport matplotlib.pyplot as pltimport numpy as npimg = cv.imread("../../file/photos/irre.png", )# 转换成灰度图像gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)# 将图像二值化ret, th = cv.threshold(gray, 127, 255, 0)contours, hierarchy = cv.findConto

2021-08-03 20:33:03 614

翻译 9.1 轮廓特征

# Image Moments可帮助您计算一些特征,例如对象的质心、对象的面积等。参考 Image Moments上的维基百科页面函数 cv.moments() 给出了所有计算出的矩值的字典。如下:import numpy as npimport cv2 as cvimg = cv.imread('star.jpg',0)ret,thresh = cv.threshold(img,127,255,0)contours,hierarchy = cv.findContours(thresh, 1,

2021-08-03 20:07:32 190

翻译 9. 图像轮廓

1.了解什么是轮廓。学习寻找轮廓,绘制轮廓等了解这些函数:cv.findContours(), cv.drawContours()轮廓可以简单地解释为连接所有连续点(沿边界)的曲线,具有相同的颜色或强度。轮廓是形状分析和对象检测和识别的有用工具。为了获得更好的准确性,请使用二进制图像。所以在找到轮廓之前,应用阈值或精明的边缘检测。从 OpenCV 3.2 开始, findContours() 不再修改源图像。在 OpenCV 中,寻找轮廓就像从黑色背景中寻找白色物体。所以请记住,要找到的对象应该

2021-08-03 10:15:43 133

翻译 8. 图像金字塔

# 为 A 生成高斯金字塔G = A.copy()gpA = [G]for i in range(6): G = cv.pyrDown(G) gpA.append(G)# 为 B 生成高斯金字塔G = B.copy()gpB = [G]for i in range(6): G = cv.pyrDown(G) gpB.append(G)# 为 A 生成拉普拉斯金字塔lpA = [gpA[5]]for i in range(5, 0, -1): G

2021-08-02 10:29:22 195

翻译 7. Canny边缘检测

1. 原理边缘检测是一种流行的边缘检测算法。它是由 John F. Canny 开发的.这是一个多阶段算法,我们将经历多个阶段。降噪:由于边缘检测容易受到图像中噪声的影响,第一步是使用 5x5 高斯滤波器去除图像中的噪声。我们已经在前面的章节中看到了这一点。寻找图像的强度梯度:平滑的图像然后在水平和垂直方向使用 Sobel 核进行滤波,以获得水平方向 (Gx) 和垂直方向 (Gy) 的一阶导数。从这两张图像中,我们可以找到每个像素的边缘梯度和方向,如下所示:EdgeGradient(G)=Gx2

2021-08-02 09:24:24 312

翻译 6.图像梯度

查找图像渐变、边缘等使用到以下方法 : cv.Sobel(), cv.Scharr(), cv.Laplacian()…原理OpenCV 提供了三种类型的梯度滤波器或高通滤波器,Sobel、Scharr 和 Laplacian。1. Sobel 和 Scharr 导数Sobel算子是联合高斯平滑加微分运算,所以更抗噪。您可以指定要采用的导数的方向,垂直或水平(分别通过参数 yorder 和 xorder)。您还可以通过参数 ksize 指定内核的大小。如果 ksize = -1,则使用 3x3 S

2021-07-30 09:57:23 67

翻译 5. 形态变换

1. 侵蚀侵蚀的基本思想就像土壤侵蚀一样,它侵蚀了前景物体的边界(始终尽量保持前景为白色)。那么它有什么作用呢?内核在图像中滑动(如在 2D 卷积中)。仅当内核下的所有像素都为 1 时,原始图像中的像素(1 或 0)才会被视为 1,否则它会被侵蚀(使其为零)。所以发生的事情是,根据内核的大小,边界附近的所有像素都将被丢弃。因此,前景对象的厚度或大小会减少,或者只是图像中的白色区域会减少。它对于去除小的白噪声、分离两个连接的对象等很有用。import cv2 as cvimport numpy as n

2021-07-28 20:01:26 158

翻译 4. OpenCV图像阈值操作

1. 普通阈值操作python中用法‎对所有矩阵元素应用固定级别阈值‎retval, dst = cv.threshold( src, thresh, maxval, type[, dst] )参数列表参数类型‎功能‎src‎输入图像矩阵(多通道、8 位或 32 位浮点)‎thresh阈值maxval在各种阈值类型中应用的最大值type阈值类型dst返回图像矩阵ThresholdTypes(阈值类型)如下实例img = cv.im

2021-07-28 09:11:16 239

翻译 3. opencv几何变换

1. 平移变换rows, cols = img.shape[:2]M = np.float32([[1, 0, 100], [0, 1, 50]])res = cv.warpAffine(img, M, (cols, rows))cv.warpAffine(图片源, 变换矩阵, 变换后图片大小)。‎平移是对象位置的移动。如果你知道在(x,y)方向的转变,使其为(tx,ty),‎可以创建转换矩阵‎ M=[10tx01ty](1)M=\begin{bmatrix}1&0&tx\

2021-07-27 11:16:14 175

翻译 2. 改变颜色空间及颜色检测

1.导入相应的包import cv2 as cvimport numpy as np2.使用摄像头实时识别cap = cv.VideoCapture(0)#填入0表示使用第一个摄像头,也可以填入本地视频的地址3.使用循环对视频逐帧识别while 1: _, frame = cap.read() # ret接收是否被正确读取,被正确读取为true,否则为false,此处用_代替 # if not ret: # print("fail to read

2021-07-26 15:12:04 135

原创 文件路径读取

1.导入OS包import os2.os.path.join(str, str, str)方法file_path = os.path.join("usr", "my", "work")#os.path.join(str, str, str)可以将路径合并print(file_path)结果如下使用os.path.join()函数,把文件名作为第二个参数加上地址myFiles = ["1.txt", "2.csv", "3.log"]for filename in myFiles:

2021-07-26 14:43:12 399

翻译 1. opencv图片基础操作

1.导入相关的包import cv2 as cv import numpy as npimport matplotlib.pyplot as plt#画出效果图2.读入图片img = cv.imread(BASIC_PATH+"/test.jpg")#imread(路径,读取类型)类型有IMREAD_GRAYSCALE(灰度),IMREAD_COLOR(彩色)#默认是按原图像读入<!--读入的图片是一个三维列表格式img[B[], G[], R[]]-->3.显示图片窗口

2021-07-22 23:06:32 483

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除