- 博客(36)
- 收藏
- 关注
原创 Python+opencv 图像闭运算
闭运算(image) = 腐蚀(膨胀(image))先膨胀,后腐蚀它有助于关闭前景物体内部的小孔,或物体上的小黑点。import cv2import matplotlib.pyplot as pltimport matplotlibimport numpy as np# 设置画图支持中文font = {'family': 'SimHei', 'size': 6}matplotlib.rc('font', **font)# 图像路径img_path = 'closing.bmp'
2020-12-11 21:44:29 2150 1
原创 Python+opencv 图像开运算
开运算(image)= 膨胀(腐蚀(image))图像被腐蚀后,去除了噪声,但是会压缩图像对腐蚀过的图像,进行膨胀处理,可以去除噪声,并保持原有形状。import cv2import matplotlib.pyplot as pltimport matplotlibimport numpy as np# 设置画图支持中文font = {'family': 'SimHei', 'size': 6}matplotlib.rc('font', **font)# 图像路径img_pat
2020-12-11 21:35:14 725
原创 Python+opencv 图像膨胀
import cv2import matplotlib.pyplot as pltimport matplotlibimport numpy as np# 设置画图支持中文font = {'family': 'SimHei', 'size': 6}matplotlib.rc('font', **font)# 图像路径img_path = 'dilation.bmp'# 按原始图像格式读入source = cv2.imread(img_path, cv2.IMREAD_UNCHANG
2020-12-11 21:15:20 768
原创 Python+opencv 图像腐蚀
import cv2import matplotlib.pyplot as pltimport matplotlibimport numpy as np# 设置画图支持中文font = {'family': 'SimHei', 'size': 6}matplotlib.rc('font', **font)# 图像路径img_path = 'erode.bmp'# 按原始图像格式读入source = cv2.imread(img_path, cv2.IMREAD_UNCHANGED)
2020-12-11 21:07:00 611
原创 Python+opencv 中值滤波
import cv2import matplotlib.pyplot as pltimport matplotlibimport numpy as npimport random# 设置画图支持中文font = {'family': 'SimHei', 'size': 6}matplotlib.rc('font', **font)def add_noise(image, noise_num): ''' 添加椒盐噪声 :param image: 待添加噪声的图像
2020-12-11 15:52:55 1003
原创 Python+opencv 高斯滤波
import cv2import matplotlib.pyplot as pltimport matplotlibimport numpy as npimport random# 设置画图支持中文font = {'family': 'SimHei', 'size': 6}matplotlib.rc('font', **font)def add_gaussian_noise(image, sigma=20): img = image.astype(np.int16) # 此步
2020-12-06 20:29:17 586
原创 Python+opencv 均值滤波
import cv2import matplotlib.pyplot as pltimport matplotlibimport numpy as np# 设置画图支持中文font = {'family': 'SimHei'}matplotlib.rc('font', **font)def add_noise(image, noise_num): ''' :param image: 待添加噪声的图像 :param noise_num: 需要添加的噪声数量
2020-12-06 16:14:09 778 1
原创 Python+opencv 阈值分割
import cv2import matplotlib.pyplot as pltimport matplotlib# 设置画图支持中文font = {'family': 'SimHei'}matplotlib.rc('font', **font)# 图像路径img_path = 'lenna.bmp'# 按灰度图像格式读入source = cv2.imread(img_path, cv2.IMREAD_GRAYSCALE)# 二进制阈值化_, a = cv2.threshol
2020-12-06 15:09:20 333
原创 MobilenetV1-Pytorch
论文中的图,左边标准卷积过程,右边深度可分离卷积过程。标准卷积:class Conv(nn.Module): def __init__(self, in_ch, out_ch, stride): super(Conv, self).__init__() self.conv2d = nn.Sequential( nn.Conv2d(in_channels=in_ch, out_channels=out_ch, kernel_size=3,
2020-08-04 20:28:23 572
原创 Batch Normalization(BN)Python实现
def Batchnorm_simple_for_train(x, gamma, beta, bn_param):"""param:x : 输入数据,设shape(B,L)param:gama : 缩放因子 γparam:beta : 平移因子 βparam:bn_param : batchnorm所需要的一些参数 eps : 接近0的数,防止分母出现0 momentum : 动量参数,一般为0.9, 0.99, 0.999 running_mean :滑动平均...
2020-07-04 17:31:06 3930 1
原创 PyTorch——YOLOv1代码学习笔记
dataset.pytxt格式:[图片名字 目标个数 左上角坐标x 左上角坐标y 右下角坐标x 右下角坐标y 类别]#encoding:utf-8#'''txt描述文件 image_name.jpg num x_min y_min x_max y_max c x_min y_min x_max y_max c 这样就是说一张图片中有两个目标'''import osimport sysimport os.pathimport randomimport nu
2020-07-03 01:00:25 2261
原创 Python实现非极大值抑制算法(NMS)
import cv2import numpy as npdef nms(bounding_boxes, confidence_score, threshold): ''' :param bounding_boxes: 候选框列表,[左上角坐标, 右下角坐标], [min_x, min_y, max_x, max_y], 原点在图像左上角 :param confidence_score: 候选框置信度 :param threshold: IOU阈值 :retur
2020-07-02 20:31:54 923 1
原创 PyTorch实现SRGAN——动漫人脸超分辨率
文章目录1. 数据集介绍2. SRGAN模型的构建3. 数据读取4. 损失函数构建5. 模型训练6. 测试模型1. 数据集介绍使用的是一个动漫人脸数据集,完整数据集下载链接:百度云 提取码:lt05该数据集图像大小均为96×96的像素,把原图当做HR,把原图resize为48×48作为LR,实现48到96的二倍超分辨,我仅选取了100张图像作为训练集,20张图像做测试。文件结构如下:...
2020-04-02 13:34:53 4628 23
原创 DeepLab系列算法笔记
DeepLab v1DCNN + CRFBackbone: VGG-16使用了空洞卷积融合了多层次信息,前四个pool层之后都额外接了两个卷积层,和最后一个softmax层concat,有微小的性能提升DeepLab v2移除部分池化操作,使用空洞卷积利用不同膨胀因子的空洞卷积融合多尺度信息—atrous spatial pyramid pooling(ASPP)使用CRF...
2020-03-28 10:52:03 362
原创 二叉树的各种遍历方式迭代版(非递归)
class Node: '''定义结点''' def __init__(self, val): self.val = val self.left = None self.right = Noneclass Tree: def __init__(self): self.root = None de...
2020-02-29 15:26:50 106
原创 Python构建一颗二分搜索树
二分搜索树特点:二分搜索树的每个节点的值,大于其左子树的所有节点的值;小于其右子树的所有节点的值;每一颗子树也是二分搜索树。Python代码实现:class Node: '''定义节点''' def __init__(self, val): self.val = val # 当前值 self.left = None # ...
2020-02-28 17:45:57 220
原创 构建二叉树(广度、前序、中序、后序遍历)
class Node: '''定义结点''' def __init__(self, val): self.val = val self.left = None self.right = Noneclass Tree: def __init__(self): self.root = None def add(self, item): ''' 按广度遍历的方式添...
2020-02-28 09:40:45 134
原创 0-1背包问题-(递归,记忆化搜索,动态规划)
现有n件物品和一个容量为c的背包。第i件物品的重量是重量为w[i],价值是v[i]。已知对于一件物品必须选择取(用1表示)或者不取(用0表示),且每件物品只能被取一次(这就是“0-1”的含义)。求放置哪些物品进背包,可使这些物品的重量总和不超过背包容量,且价值总和最大。关键在于分析出状态转移方程:(1)i=0 当j<w[0]时,m[0][j]=0;当j>=w[0]时,m[0][j...
2020-02-24 12:44:45 558
原创 LeetCode-120. 三角形最小路径和
难度:中等描述:给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。例如,给定三角形:[ [2], [3,4], [6,5,7], [4,1,8,3]]自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。说明:如果你可以只使用 O(n) 的额外空间(n 为三角形的总行数)来解决这个问题,那么你的算法会很加...
2020-02-22 21:29:08 87
原创 斐波那契数列——普通递归、记忆化搜索、动态规划
普通递归import timedef fibo(n): if n == 0: return 0 if n == 1: return 1 return fibo(n-1) + fibo(n-2)n = 35start_time = time.time()a = fibo(n)end_time = time.time()...
2020-02-22 17:23:52 621
原创 LeetCode-455. 分发饼干
难度:简单描述:假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。如果 sj >= gi ,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。注意:你可以假设胃口...
2020-02-22 14:19:44 112
原创 LeetCode-75.颜色分类
难度:中等描述:给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。注意: 不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]进阶:一个直观的解决方案是使用计数排序的两趟扫描算...
2020-02-22 08:54:18 93
原创 LeetCode-283.移动零
难度:简单描述:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。解法1(非原地操作,不符合说明):创建一个新数组,遍历原数组,将非零元素添加进新数组,遍历完毕把新数组末尾补零至size和原数组一样长...
2020-02-21 20:47:36 124
原创 二分查找(floor and ceil)
import mathdef floor(arr, target): ''' 在有序数组arr中, 查找target 如果找到target, 返回第一个target相应的索引index 如果没有找到target, 返回比target小的最大值相应的索引, 如果这个最大值有多个, 返回最大索引 如果这个target比整个数组的最小元素值还要小, 则不存在这个...
2020-02-20 12:10:24 191
原创 数据结构之排序算法——快速排序
文章目录1. Quick sort (v1)1.1 C++实现1.2 Python实现2. Quick sort (v2)2.1 C++实现2.2 Python实现3. Quick sort (v3)3.1 C++实现3.2 Python实现1. Quick sort (v1)单路快速排序1.1 C++实现// 对arr[l...r]部分进行partition操作// 返回p, 使得ar...
2020-02-15 20:55:24 104
原创 数据结构之排序算法——归并排序
文章目录1. Merge sort (v1)1.1 C++实现1.2 Python实现2. Merge sort (v2)2.1 C++实现2.2 Python实现3. Merge sort (v3)3.1 C++实现3.2 Python实现1. Merge sort (v1)1.1 C++实现// 将arr[l...mid]和arr[mid+1...r]两部分进行归并template&l...
2020-02-15 18:47:47 95
原创 数据结构之排序算法——插入排序
文章目录1. 选择排序2. 插入排序2.1 基础版2.2 改进版1. 选择排序#include <iostream>using namespace std;template<typename T> void selection_sort(T arr[], int n){ for(int i = 0; i < n; i++){ ...
2020-02-15 11:28:24 105
原创 Python协程gevent测试IP是否可用
import requestsfrom queue import Queueimport randomimport geventfrom gevent import monkeymonkey.patch_all()def getheaders(): user_agent_list = [ "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWe...
2020-02-08 10:31:37 1124
原创 Python多进程测试IP是否可用
import requestsimport multiprocessingimport randomdef getheaders(): user_agent_list = [ "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537...
2020-02-05 14:47:24 1460
原创 Python多线程测试IP是否可用
import requestsimport timeimport threadingfrom queue import Queueimport randomdef getheaders(): user_agent_list = [ "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko)...
2020-02-04 13:25:45 2415
原创 Python爬虫+PyQt5制作mp3下载工具
实际效果如下图所示:源代码有四个文件,分别是kugou.ui、kugou_ui.py、my_spider.py、main.py。kugou.ui:<?xml version="1.0" encoding="UTF-8"?><ui version="4.0"> <class>widget</class> <widget class=...
2020-02-02 11:32:44 2436 1
原创 PyQt5+爬虫打造磁力链接搜索工具
PyQt5结合爬虫制作一个磁力链接搜索工具的可视化界面,具体效果如下图所示,输入框内输入要搜索的内容,点击搜索按钮,下面的大框内显示搜索结果,双击搜索结果可以自动调用电脑上的迅雷下载,清除按钮用来清除搜索结果。本文分为三小节,第一小节为GUI设计,第二小节为爬虫,第三小节介绍如何将它们结合到一起。1. GUI设计使用QT designer设计该界面,新建一个widget窗口,把控件从左边拖进...
2020-01-31 22:50:30 4822
原创 Python如何读取.h5数据的文件并将内容保存为图片
import h5pyimport osimport numpy as npfrom PIL import Imagedataset = h5py.File('lpba_val.h5', 'r')first_level_keys = [key for key in dataset.keys()]for first_level_key in first_level_keys: ...
2019-11-06 21:49:16 4967 6
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人