自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 资源 (3)
  • 收藏
  • 关注

原创 卷积神经网络训练CIFAR100

一、前言1.1、数据集介绍​ CIFAR-10数据集由10个类的60000个32x32彩色图像组成,每个类有6000个图像。有50000个训练图像和10000个测试图像。​ 数据集分为五个训练批次和一个测试批次,每个批次有10000个图像。测试批次包含来自每个类别的恰好1000个随机选择的图像。训练批次以随机顺序包含剩余图像,但一些训练批次可能包含来自一个类别的图像比另一个更多。总体来说,五个训练集之和包含来自每个类的正好5000张图像。​ 以下是数据集中的类

2021-01-17 15:57:27 11706 24

原创 sklearn对MBTI分类并统计指标

使用机器学习算法,预测分类MBTI性格类型,并计算准确率、精确率、召回率等指标,可视化混淆矩阵。

2022-10-08 23:45:37 1643 1

转载 解决pytorch导入模型报错:AttributeError: Can‘t get attribute ‘XXX‘ on <module ‘__main__‘ from YYY>

pytorch导入模型权重报错

2022-07-07 15:29:45 7261 9

原创 Linux下安装anaconda3 source ~/.bashrc报错:Illegal variable name

引言当我们在 Linux 下安装 Anaconda 时,需要将 conda 添加到系统路径,需要进行以下操作:1、打开 bashrc 文件在终端命令行输入:vim ~/.bashrc2、在 bashrc 文件末尾添加 anaconda 路径export PATH=/home/yourusername/anaconda3/bin:$PATH具体为 anaconda3 的 bin 路径3、退出 vim,在命令行上输入:source ~/.bashrc一般情况下,基于以上步

2022-03-21 22:45:21 5860 3

原创 修改MySQL远程连接权限并使用pymysql进行远程连接

使用本地电脑连接远程MySQL的前提是远程数据库对本地电脑开启连接权限,因此本文教大家如何修改权限。

2022-01-26 19:41:22 1518

原创 OpenCV读取中文路径图片

01、引言在 Python 3.x 中,由于编码问题,OpenCV 不能读取带有中文路径的图片。在此,笔者收集了一些网上资料,整理了下,可以让 OpenCV 读取中文路径的方法,具体分为:使用 cv2.imdecode 函数使用 matplotlib 读取再转换改变电脑编码环境02、使用 cv2.imdecode 函数读取中文路径图片import cv2img = cv2.imdecode(np.fromfile("奥巴马.jpg",dtype=np.uint8),-1)img = cv

2021-10-21 17:55:37 3114

原创 OpenCV显示中文字体

01、引言OpenCV-Python 是一个用来图像处理的 Python 库,但其一般不能在图片上显示中文,否则会乱码。但有些情况下我们必须要显示中文,因此,我们可以使用 PIL 库来写中文,再转换成 OpenCV 格式。import cv2img = cv2.imread("obama.jpg")img = cv2.putText(img,text="奥巴马",org =(40, 80),fontFace=cv2.FONT_HERSHEY_COMPLEX, fo

2021-10-21 16:47:34 8579 5

原创 dlib 安装教程(三种方法)

引言dlib 库是一个用来人脸关键点检测的 python 库,但因为其是 C++ 编写(或需要 C++编译?),使得我们在安装时遇到各种各样问题。笔者在不同电脑上安装遇到的问题都不同,但最后经过搜索,都解决了,因此,我将自己安装 dlib库方法总结一下,希望可以帮到大家。方法一:Anaconda 安装安装 Anaconda 后,首先在命令行输入:anaconda search -t conda dlib用来搜索可以使用的 dlib 版本;然后再输入:conda install -c https

2021-10-19 22:07:03 76560 87

原创 01、利用OpenCV和numpy对图片进行堆砌

前言Opencv 在显示多张图片时,如果不加以拖动,可能不能及时找到想要查看的图片。因此,特地编写一个函数,将图片按照 “矩阵” 形式排列开来,具体实现效果如下图:预备知识numpy 库的 hstack() 和 vstack() 函数可以对图片进行水平和垂直堆砌:src = cv2.imread('Resources/lena.png') # 读取图片hor_pics = np.hstack((src,src)) # 水平堆砌,输入参数必须为元组ver_pics =

2021-08-16 19:59:13 318

原创 Pycharm远程使用Linux环境配置步骤

前言1、说明首先介绍下我本人情况,我在windows笔记本电脑上下载了Pycharm专业版,因为我本人只是用来跑代码,想把代码自动同步起来,因此特地通过pycharm来远程使用Linux上配置好的环境,加速代码运行。当然大家也可以使用Xshell等软件,使用命令行来操作。2、环境介绍目前使用的环境:Linux:20.04Pycharm:2019专业版Windows:64位Anaconda:Python 3.7一、添加并设置部署1、点击Pycharm工作栏上方“ Tools ->

2021-07-16 16:28:37 3307 10

原创 Leetcode刷题笔记08——删除有序数组中的重复项

一、题目描述给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例如下:二、题解与作答利用 两个指针 来求解,其中前一个指针 p 从 0 开始,第二个指针 q 从 1 开始,如果:p 、q 指针所代表的值相同,则 q = q + 1 ;p 、q 指针所代表的值不同,则将 q 所指向的值赋值给 p + 1 所指向的值,同时:p = p

2021-07-08 22:03:24 152

原创 Leetcode刷题笔记07——合并两个有序链表

一、题目描述将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例如下:二、题解与作答如果两个链表其中之一为空,则返回另一个链表。如果 l1 链表的第一个值小于 l2 链表的第一个值,则利用递归算法,对 l1 第一个值之后的元素与 l2 链表进行合并,直到合并完最后一个元素;同样的,若 l2 链表的第一个值小于 l1 链表的第一个值,则利用递归算法,对 l2 第一个值之后的元素与 l1 链表进行合并,直到合并完最后一个元素.# Definiti

2021-07-07 16:46:25 138

原创 Leetcode刷题笔记06——有效的括号

一、题目描述给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例如下:提示:1 <= s.length <= 104s 仅由括号 ‘()[]{}’ 组成二、题解与答案此题可以说是 “栈” 类型数据结构经典题目。首先利用字典建立匹配模板:’]’ -> '['’)’ -> '('’}’ -> '{'建立堆

2021-07-06 22:14:21 120

原创 Leetcode刷题笔记05——最长公共前缀

一、题目要求编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例如下:提示:0 <= strs.length <= 2000 <= strs[i].length <= 200strs[i] 仅由小写英文字母组成二、题解与答案以列表里的第一个字符串为参考元素,判断其余元素有多少个与它一致的公共前缀,这样便需要两个循环,其中外循环用来改变检测的前缀字母,内循环用来改变所检测的字符串,代码如下:class Solution:

2021-07-05 14:25:16 127

原创 Leetcode刷题笔记04——罗马数字转整数

一、题目要求罗马数字包含以下七种字符: I, V, X, L,C,D 和 M 。字符数字I1V5X10L50C100D500M1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所

2021-07-05 09:26:33 139

原创 Leetcode刷题笔记03——回文数

一、题目要求给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。示例如下:二、题解与答案分两种情况:第一,如果 x 是负数,那么一定不是回文数;第二,如果 x 不是负数,那么将x 转化为字符串,然后翻转,如果翻转后的字符串与未翻转一致,那么则为回文数。class Solution: def isPalindrome(self, x: int) -&

2021-07-03 16:42:33 176

原创 Leetcode刷题笔记02——整数翻转

一、题目要求给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1],就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。二、题解与答案将整数变为字符串,如果为正数,直接翻转;如果为负数,翻转到符号位后一位再加上符号即可,具体代码如下:class Solution: def reverse(self, x: int) -> int: if(x<0)

2021-07-02 22:42:11 154

原创 Leetcode刷题笔记01——两数之和

一、题目要求给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值target 的那两个整数,并返回它们的数组下标。如:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 输入:nums = [3,2,4], target = 6输出:[1,2]二、题解与答案2.1、暴力解法两个循环,外循环索引为fir_idx ,从0开始,到len(列表长

2021-07-01 23:03:21 181 1

原创 数据结构与算法01——冒泡排序

一、冒泡排序的定义冒泡排序多次遍历列表,它比较相邻的元素,将不合顺序的交换。每一轮遍历都将下一个最大值放到正确位置上,本质上,每个元素通过“冒泡”找到自己所属的位置。具体示意图为:二、冒泡排序代码# Author:MuMengSunny# Filename:BubbleSortdef bubble_sort(alist): length = len(alist) for num in range(0,length-1): # 控制从头走到尾的次数

2021-07-01 15:33:37 127

原创 解决 tf-pose 安装出现的问题

一、出现的问题 Warning! ***HDF5 library version mismatched error*** The HDF5 header files used to compile this application do not match the version used by the HDF5 library to which this application is linked. Data corruption or segmentation faults m

2021-04-01 11:00:48 300

原创 24、sobel算子理论基础

一、含义Sobel算子是高斯平滑与微分操作的结合体,它的抗噪音能力很好。可以设定求导的方向(xorder或 yorder)。还可以设定使用的卷积核的大小( ksize),如果 ksize = -1,会使用 3x3的 Scharr滤波器,效果会更好,若速度相同,在使用 3x3滤波器时尽量使用 Scharr。二、计算方法...

2021-03-17 14:43:20 432

原创 23、黑帽操作

一、黑帽操作含义进行闭运算图像减去原图像后的图像,即:Blackhat(img) = Close(img)-img二、morphologyEx() 函数实现黑帽操作2.1、代码调用形式dst = cv2.morphologyEx(src,cv2.MORPH_BLACKHAT,kernel)src:需要处理的图像cv2.MORPH_BLACKHAT:指定为黑帽kernel:卷积核,为元组,一般使用 numpy 进行赋值2.2、案例实现#Author:MuMengSunny#Filenam

2021-03-17 14:26:17 445

原创 22、礼帽操作

一、礼帽操作含义原图像减去进行开运算后的图像,即:Tophat(img) = img - Open(img)通过礼帽操作,可以得到原图像中的噪声二、morphologyEx() 函数实现礼帽操作2.1、函数调用形式dst = cv2.morphologyEx(src,cv2.MORPH_TOPHAT,kernel)src:需要处理的图像cv2.MORPH_TOPHAT:指定为礼帽kernel:卷积核,为元组,一般使用 numpy 进行赋值2.2、案例实现#Author:MuMengSu

2021-03-16 22:37:50 959

原创 21、梯度运算

一、梯度运算含义一张图片分别做膨胀与腐蚀操作,最后用膨胀后的图片减去腐蚀的图片,得到的新图片便是该图片的梯度运算。即:梯度运算 (img) = 膨胀 (img) - 腐蚀 (img)通过梯度运算可以得到前景物体的轮廓。二、morphologyEx() 函数实现梯度运算2.1、函数调用格式dst = cv2.morphologyEx(src,cv2.MORPH_GRADIENT,kernel)src:需要处理的图像cv2.MORPH_GRADIENT:指定为梯度运算kernel:卷积核,为

2021-03-16 22:34:47 1625

原创 20、开运算与闭运算

一、开运算含义先进行腐蚀再进行膨胀就叫做开运算。开运算 (image)= 膨胀 (腐蚀 (image))图像被腐蚀后,去除了噪声,但会压缩图像;对腐蚀过的图像进行膨胀处理,可以去除噪声并保持原有形状。二、morphologyEx() 实现开运算2.1、函数调用格式dst = cv2.morphologyEx(src,cv2.MORPH_OPEN,kernel)src:需要处理的图像cv2.MORPH_OPEN:指定为开运算kernel:卷积核,为元组,一般使用 numpy 进行赋值2.2

2021-03-16 18:00:48 15419 2

原创 19、图像膨胀

一、图像膨胀含义1.1、含义图像膨胀类似于 “领域扩张 ”,将图像的高亮区域或白色部分进行扩张,运行结果图比原图的高亮区域更大。膨胀的运算符是 “⊕” ,其定义如下:​ A⊕B={x∣(B)x∩A≠Θ}A \oplus B=\left\{x \mid(B)_{x} \cap A \neq \Theta\right\}A⊕B={x∣(B)x​∩A​=Θ}该公式表示用 B来对图像 A进行膨胀处理,其中 B是一个卷积模板或卷积核,其形状可以为正方形或圆形,通过模板 B与图像A进行

2021-03-16 17:54:35 5885 1

原创 18、图像腐蚀

一、图像腐蚀含义1.1、定义腐蚀类似 “领域被蚕食 ”,将图像中的高亮区域或白色部分进行缩减细化,其运行结果比原图的高亮区域更小。腐蚀的运算符号是 “ -”,其运算规则是:​ A−B={x∣Bx⊆A}A-B=\left\{x \mid B_{x} \subseteq A\right\}A−B={x∣Bx​⊆A}该公式表示图像 A用卷积模板 B来进行腐蚀处理,通过模板 B与图像 A进行卷积计算,得出 B 覆盖区域的像素点最小值,并用这个最小值来替代参考点的像素值。如图所示

2021-03-16 17:49:23 1994 1

原创 17、中值滤波

一、中值滤波含义让临近的像素按照大小排列,取排序像素集中位于中间位置的值作为中值滤波后的像素值。二、medianBlur()函数实现中值滤波2.1、函数调用形式dst = cv2.medianBlur(src,ksize)src:需要处理的图像ksize:核大小,是一个比 1 大的奇数,不是元组2.2、案例实现#Author:MuMengSunny#Filename:中值滤波import cv2img = cv2.imread(r'F:\image\lenacolor.png'

2021-03-16 17:42:30 409

原创 16、高斯滤波

一、高斯滤波含义与均值滤波不同的是,高斯滤波给每一个像素点加一个系数,让临近的像素具有更高的重要度。对周围像素计算加权平均值,让较近的像素具有较大的权重值。二、GaussianBlur()函数实现高斯滤波2.1、函数调用形式dst = cv2.GaussianBlur(src,ksize,sigmaX,sigmaY)src:需要处理的图像ksize:核大小,必须设置为奇数sigmaX:X轴方向的方差,一般使用为 0sigmaY:一般与X轴保持一致,通常省略不写2.2、案例实现#Au

2021-03-16 17:36:29 336

原创 15、方框滤波

一、方框滤波方框滤波是均值滤波的一般形式,在均值滤波中,将滤波器中所有的像素值求和后的平均值作为滤波后结果,方框滤波也是求滤波器内所有像素值的之和,但是方框滤波可以选择不进行归一化,就是将所有像素值的和作为滤波结果,而不是所有像素值的平均值。用公式表达为:K=1α[1⋯1⋮⋱⋮1⋯1]K=\frac{1}{\alpha}\left[\begin{array}{ccc}1 & \cdots & 1 \\ \vdots & \ddots & \vdots \\ 1 &amp

2021-03-16 17:33:09 2110

原创 14、均值滤波

一、均值滤波含义任意一个像素点的值,都是周围 N×NN \times NN×N 个像素点的均值。针对原始图像内的像素点,采用核处理,得到结果图像,如当选择 5×55\times 55×5 的核时:二、blur()函数实现均值滤波2.1、格式dst = cv2.blur(src,ksize)src:要处理的图像ksize:核大小,以元组形式输入,如:(3,3)2.2、案例实现#Author:MuMengSunny#Filename:均值滤波import cv2 i

2021-02-25 08:47:41 1473

原创 13、threshold函数

一、threshold()函数形式retval,dst = cv2.threshold(src,thresh,maxval,type)输入参数:src:需要处理的图像thresh:阈值maxval:最大像素值type:阈值分割类型输出参数:retval:阈值dst:处理后的图像二、OpenCV实现不同阈值分割2.1、二值分割retval_bin,img_bin = cv2.threshold(img,128,512,type=cv2.THRESH_BINAR

2021-02-25 08:39:09 17786

原创 12、阈值分割基础理论

一、阈值分割阈值分割法是一种基于区域的图像分割技术,原理是把图像象素点分为若干类。图像阈值化的目的是要按照灰度级,对像素集合进行一个划分,得到的每个子集形成一个与现实景物相对应的区域,各个区域内部具有一致的属性,而相邻区域不具有这种一致属性。这样的划分可以通过从灰度级出发选取一个或多个阈值来实现。二、常见的 5 种阈值分割法2.1、 二进制阈值化分割原理:先要选定一个特定的阈值,比如:127;新的阈值产生规则为:​ 大于或者等于 127 的像素点的灰度值设定为最大值(如 8位灰度

2021-02-21 08:58:53 6642

原创 11、图像翻转

一、flip()函数实现图片翻转语法格式dst = cv2.flip(src,flipCode)src 代表要进行翻转的图像flipcode代表要翻转的格式:​ flipcode = 0 :上下翻转​ flipcode >0 :左右翻转​ flipcode < 0:先上下翻转,再左右翻转二、Python 实现#Author:MuMengSunny#Filename:图像翻转import cv2img = cv2.imread(r'F:\image\lenacolo

2021-02-21 08:51:18 487

原创 10、图像缩放

一、*resize()*函数实现图像的缩放语法格式:dst=cv2.resize(src,dsize,fx,fy)dst = cv2.resize(src,dsize,fx,fy)dst=cv2.resize(src,dsize,fx,fy)dsize是目标尺寸,先列后行;fx,fy分别代表水平方向与垂直方向放大的倍数dsize和 fx、fy设置一方即可,否则会出错,如:cv2.resize(src,(200,100))# 或者cv2.resize(src,None,fx=0.5,f

2021-02-20 22:09:15 237

原创 09、图像类型转换

一、常见的类型转换OpenCV 提供了200多种不同类型之间的转换,常见的有:cv2.COLOR_BGR2GRAY # BGR -> GRAYcv2.COLOR_BGR2RGB # BGR -> RGBcv2.COLOR_GRAY2BGR # GRAY -> BGR二、类型转换彩色 ——> 灰色img = cv2.imread(r'F:\image\lenacolor.png') img_grey = cv2.cvtColor(img,cv2.

2021-02-20 22:03:13 298 1

原创 08、图像融合

一、含义将2张或者2张以上的图片信息融合到一张上融合的图像含有更多的信息、能够方便人来观察或者计算机处理融合的时,会采用一些算法:不同照片采用不同比例因子结果图像=图像1×系数1+图像2×系数2+亮度调节量结果图像 = 图像1 \times 系数1 + 图像2 \times 系数2 + 亮度调节量结果图像=图像1×系数1+图像2×系数2+亮度调节量img=img1×0.3+img2×0.2+18img = img1 \times 0.3 + img2 \times0.2 + 1

2021-02-12 20:58:01 248

原创 07、图像加法

一、numpy加法取模加法二、opencv加法饱和运算三、二者比较四、注意事项​ 参与运算的图像,其大小、类型必须一致五、源程序#Author:MuMengSunny#Filename:图像加法import cv2import numpy as npimg = cv2.imread(r'F:\picture\1111.jpg',cv2.IMREAD_UNCHANGED)img_copy = imgresultnp = img + img_copy

2021-02-11 23:13:22 147

原创 06、通道的拆分与合并

一、拆分使用 spilt() 函数可以将 RGB 图像一次拆分为三个通道;如果只是想提取某一个通道的图像,可以使用列表索引。img = cv2.imread(r'F:\picture\1111.jpg',cv2.IMREAD_UNCHANGED)Blue,Green,Red = cv2.split(img)'''或者:Blue = cv2.spilt(img)[0]Green = cv2.spilt(img)[1]Red = cv2.spilt(img)[2]'''# 显示单个通道图像

2021-02-11 23:06:56 516 1

原创 05、图像ROI

一、含义ROI(region of interest),感兴趣区域。机器视觉、图像处理中,从被处理的图像以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域,称为感兴趣区域,ROI。在Halcon、OpenCV、Matlab等机器视觉软件上常用到各种算子(Operator)和函数来求得感兴趣区域ROI,并进行图像的下一步处理。二、代码实现#Author:MuMengSunny#Filename:图像ROI(感兴趣区域)import numpy as npimport cv2# 读取图片

2021-02-11 22:35:21 1346

Python爬取煎蛋网图片

Python爬取煎蛋网图片: 利用requests库请求网页;利用lxml库,配合xpath语法,解析网页,提取图片地址;最后以二进制方式保存到文件夹中。代码爬取了5页网址图片,有下载提示。

2020-03-15

三相桥式双极性PWM逆变电路

本次仿真在MATLAB的Simulink环境下采用电压型电力电子器件搭建三相桥式双极性PWM调制逆变电路主电路;采用正弦波模块生成调制信号,三角波模块生成三角载波,比较产生驱动信号;观察电路的载波、调制信号、输出电压、输出电流波形。

2020-03-05

单项桥式单极性逆变电路

直流电源电压为100V,频率50Hz,直流侧电阻为 1Ω,载波频率为1000Hz,滤波电感为10mH,正弦调制信号幅值为0.7(调制度为0.7)。 仿真波形很好。

2020-03-05

空空如也

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

TA关注的人

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