自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 使用matlab对图像轮廓提取代码实现

原图首先将图片导入matlab工作区 图片将会被转换为一个二维矩阵存=存放然后我们输入指令可以看到原图然后转为二值图像使用bwperim()函数进行轮廓提取同样我们可以借助edge()函数进行边界检测,算子可以选择canny,soble等等。算子是什么呢?简单的说就是一种运算方式,一种关系,一种映射。广义的讲,对任何函数进行某一项操作都可以认为是一个算子,甚至包括求幂次,开方都可以认为是一个算子,只是有的算子我们用了一个符号来代替他所要进行的运算罢了,所以大家看到算子就不要纠结,他和

2021-04-19 22:56:05 3427 1

原创 MATLAB GUI编程axes显示载入图片

MATLAB GUI软件界面显示载入的.JPG图片分两种情况,一种是希望点击按钮后显示载入的图片、另一种情况是希望软件界面一开始就载入默认位置的图片。 启动MATLAB 2018b后,在命令行光标后输入: guide 并回车,选择并打开名为 untitled8.fig 的文件。我从互联网上下载了NVIDIA和AMD两个游戏显卡公司的图片作为素材,分别用好压看图2345调整完像素大小并保存为NVIDIA.jpg和AMD.jpg一、启动时默认载入NVIDIA.jpg并显示在GUI轴 axes3找到对象“

2021-04-19 21:24:56 7724

原创 基于蚁群聚类算法的图像边缘检测

一、简介1 蚁群算法的提出蚁群算法(ant colony optimization, ACO),又称蚂蚁算法,是一种用来寻找优化路径的机率型算法。它由Marco Dorigo于1992年在他的博士论文中提出,其灵感来源于蚂蚁在寻找食物过程中发现路径的行为。遗传算法在模式识别、神经网络、机器学习、工业优化控制、自适应控制、生物科学、社会科学等方面都得到应用。2 算法的基本原理二、源代码%%%%%%%%%%%初始部分,读取图像及计算相关信息%%%%%%%%%%%%%%%%%clear;clc

2021-04-19 00:55:27 1470 3

原创 Matlab实现图像识别(十)

接下来就是参数选择的问题。什么是参数选择的问题呢?例如如果你把720x720的图片放进去,隐藏层都几个G了,这个自然是不行的。在本次实验中,我一开始用了5000个隐藏节点,结果,训练一次这个隐藏层就需要1分钟的时间,自然是不可以的,因为我还要训练一万次,没法调Bug啊,这个时间绝对不行。因此图像的大小选择是十分慎重的,因为如果只是28x28像素的话,总的也才784个节点,如果是60x80的话,就会陡增至4800个节点。计算机的算力吃不消。当初我做minst的时候,输入784个节点,隐藏层也就100~1

2021-04-16 22:03:06 1278

原创 Matlab实现图像识别(九)

随机挑选50个物体,每个物体挑选20张图片。imgs, labels = img_pick(path)其中,imgs为50202828,label就是50101了,那么,预处理就在img_pick中做。function [imgs, labels] = img_pick(path) imgs = zeros(50, 20, 28, 28); labels=zeros(50, 101); namelist = dir(path); for i = 1:50 % 挑出50

2021-04-16 22:02:44 1798

原创 Matlab实现图像识别(八)

这节实现图像的预处理。在最开始的时候,我们仅仅是把图像进行灰度化,并为了训练效率,强行缩小了图像,导致损失了许多图像信息,实际上,有更多的方法来保存这些信息。现在流行的图像预处理算法非常多,例如图像反转,灰度线性变换,非线性变换,直方图均衡化,线性平滑滤波器,中值滤波器,Sobel算子和拉普拉斯对图像锐化,梯度算子检测边缘,LOG算子检测边缘,Canny算子检测边缘,边界跟踪(bwtraceboundary函数),Hough变换,直方图阈值法,自动阈值法:Otsu法,膨胀操作,腐蚀操作,开启和闭合操作,

2021-04-15 21:49:00 2464

原创 Matlab实现图像识别(七)

分完数据,我们要实现BP神经网络的运算和测试。既然BP神经网络已经设计好了,那么现在制作测试代码,一共选择50个物体,每个物体随机挑选20张图片,总共测试1000次,看其正确率。% 测试代码path = 'test_set';namelist = dir(path);res = 0;for i = 1:50 % 挑出50个物体 k = rand(101); % 随机选择一个物体 if namelist(k).name == '.',continue,end label =

2021-04-15 21:48:03 684

原创 Matlab实现图像识别(六)

关于反向传播我实在讲不透,自己把公式推算一遍比较好。既然已经把BP成功搭建起来了,那么接下来做什么呢?接下来把数据集分割一下,一般来说,训练集数据集分割比是2:1的样子差不多。我们仍然用matlab实现分割,既然我们已经知道了如何读取图像,那么存入图像也是简单的:imwrite(img, path);我们可以把前2/3作为训练集放到一个文件夹,后1/3作为测试集放入另一个文件夹。新建一个脚本move.m,在其中写入如下代码:path = '101_ObjectCategories';nameli

2021-04-15 21:47:07 1907

原创 Matlab实现图像识别(五)

先实现单个更新,得出结果之后,再实现批量更新。后向传播算法为:w = w - a*de/dw;其中,w就是那个参数,e代表误差,a是一个步长,乘以这个导数就变成了实际的一小段,减去它就是了。这个导数这么算:de/dw = de/dy2 * dy2/dy1 * dy1/dw其中,e = 1/2 * sum((label - output).^2); 其中,label和output都是101维的向量,它们相减后就是单个误差,平方后去掉负号再全部加起来就是单一个数字了,因此e只是1个数字,1/2是求导用

2021-04-15 21:45:50 629 1

原创 Matlab实现图像识别(四)

这节实现反向传播。首先当一个图片输出结果output之后,将其与label相减取绝对值,这个 就是误差,然后对每一个w求出偏导,乘以一个步长再用相应的w减去它。在每一轮循环,随机选几十个物品,然后每个物品随机选四五张图像,总共就有几百张图像,作为一轮,然后重复几千轮,这样就训练好了。例如我们可以随机选50个物体,每个物体10张图片,代码如下:path = '101_ObjectCategories';namelist = dir(path);for i = 1:50 % 挑出50个物体

2021-04-15 21:43:58 2700 1

原创 Matlab实现图像识别(一)

我们采用的是101_ObjectCategories这个数据集(这里是其主页,你也可以在这里获得数据集以及我的代码),这个数据集是加州理工的一个数据集,里面有101个文件夹,每个文件夹的名字是一个物体,文件夹内有几十张上百张这个物体的图像,每个图像的大小不尽相同,总共才100多MB,比较好训练,有一个同类的数据集,它还有有200多个物体的一个数据集,但是有几个G,所以不太适合了。相对于MNIST数据集来说,用matlab的话,MNIST数据集显得更难读取了,因此也不选用MNIST数据集。需要注意的是,这个

2021-04-15 21:38:07 8613

原创 Matlab从视频中提取图像,可以设定每多少秒提取1帧。

这个27941是秒数,就是提取视频多少秒。如果整个视频提取的话,可以用VideoAd.Duration即视频总长度替代。video.FrameRate是视频每秒多少帧图片。你如果想要60秒提取一帧的话,那么 60*FrameRate 设定为循环的步长就可以提取了。clc;clear;%% 读取视频video_file='C:\Users\49786\Desktop\Fog20200313000026.mp4';video=VideoReader(video_file);frame_...

2021-04-15 21:32:16 1766 1

原创 MATLAB读取指定文件夹下的所有文件

指定路径下,单个文件夹data中所有图像file_path = ‘.\data’;% 图像文件夹路径img_path_list = dir(strcat(file_path,’*.jpg’));%获取该文件夹中所有 jpg格式的图像img_num = length(img_path_list);%获取图像总数量if img_num > 0 %有满足条件的图像for j = 1:img_num %逐一读取图像image_name = img_path_list(j) .name;%..

2021-04-15 21:27:49 7690

原创 用python的with open和os对文档进行读写操作

文件练习题随机生成20个10-100区间范围内的整数,从小到大排序,然后写入文件,接着从文件中读取出来 文件内容,最后反序,再追加到文件的下一行。import randomlist_num = [random.randint(1, 100) for i in range(20)]list_num.sort()li = [str(i) for i in list_num]# txt...

2019-07-25 20:24:35 804

原创 python的模块和包

Python 模块Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。模块让你能够有逻辑地组织你的 Python 代码段。把相关的代码分配到一个模块里能让你的代码更好用,更易懂。模块能定义函数,类和变量,模块里也能包含可执行的代码。下例是个简单的模块 support.py:support.py 模块:de...

2019-07-25 20:05:29 103

原创 python内置函数zip()和filter()

zip函数zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。我们可以使用 list() 转换来输出列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。zip 方法在 Python 2 和 Python 3 中的不同:在 Python 2.x...

2019-07-25 19:52:10 235

原创 python中map函数和lambda和reduce函数

map函数会根据提供的函数对指定序列做映射。第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。语法map(function, iterable, …)参数function – 函数iterable – 一个或多个序列返回值Python 2.x 返回列表。Python 3.x 返回迭代器。实例...

2019-07-25 19:41:38 247

原创 python程序包中为什么会有__init__.py,这个有什么作用

init.py的作用有如下几点:相当于class中的def init(self):函数,用来初始化模块。把所在目录当作一个package处理from-import 语句导入子包时需要用到它。 如果没有用到, 他们可以是空文件。如引入package.module下的所有模块from package.module import *这样的语句会导入哪些文件取决于操作系统的文件系统. 所以我...

2019-07-25 14:24:01 1763

原创 python列表list反向排序和回文数实现

方法一 利用list的分片操作x = [1, 2, 3, 4]print(x[::-1]) #x = [4, 3, 2, 1]方法二 list.reverse()。改变原list,无返回x = [1, 2, 3, 4]x.reverse()print(x) #x = [4, 3, 2, 1]方法三 reversed(list)。不改变原list,有返回,但返回类型不是list...

2019-07-23 16:45:29 1349

原创 关于默认参数、可变参数、关键字参数,命名关键字参数的理解

1.默认参数当想调用一个带默认参数的函数的时候,其实就是为了降低调用难度,而如果还想需要更复杂的调用时,又可以传递更多的参数来实现时,函数只需要定义一个,不管简单复杂与否。举个栗子:def person(name, gender, age=21, city=‘ShenZhen’):print(‘name:’, name)print(‘gender:’, gender)print(‘ag...

2019-07-23 15:49:42 896

原创 python的作用域,内嵌函数和闭包

python 变量作用域1、在函数内部定义的变量称为“局部变量”,只作用于函数内部,函数外无法调用。2、在函数外定义的变量称为“全局变量”,作用于全局。3、在局部想要更改全局变量,需要使用global4、在内层函数想要更改外层函数变量,需要使用nonlocal一、global用法例如name = “YY” # 全局变量def f1(): global name # 声明...

2019-07-23 15:45:38 149

原创 python错误和异常

常见异常:1、语法错误(Syntax Errors)语法错误,也就是解析时错误。当我们写出不符合python语法代码时,在解析时会报SyntaxError,并且会显示出错的那一行,并用小箭头知名指明最早探测到错误的位置。如:>>> while Ture File "<stdin>", line 1 while Ture ^...

2019-07-23 11:14:22 399

原创 Linux常用命令大全(非常全!!!)

Linux常用命令大全(非常全!!!)最近都在和Linux打交道,感觉还不错。我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短小但却功能强大。我将我了解到的命令列举一下,仅供大家参考:系统信息arch 显示机器的处理器架构uname -m 显示机器的处理器架构uname -r 显示正在使用的内核版本dmidecod...

2019-07-22 19:31:57 110

原创 排序算法总结

排序算法 平均时间复杂度冒泡排序 O(n2)选择排序 O(n2)插入排序 O(n2)希尔排序 O(n1.5)快速排序 O(NlogN)归并排序 O(NlogN)堆排序 O(N*logN)基数排序 O(d(n+r))一. 冒泡排序(BubbleSort)基本思想:两个数比较大小,较大的数下沉,较小的数冒起来。过程:比较相邻的两个数据,如果第二个数小,就交换...

2019-07-22 19:17:12 76

原创 python中os/time/random/sys模块的使用

1 time 模块时间表示的三种方式:(1)时间戳timestamp :时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。运行“type(time.time())”,返回的是float类型。(2)格式化的时间字符串(3)元祖类型struct_time : struct_time元组共有9个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时)时间转换...

2019-07-22 18:48:46 175

原创 os模块的使用

#OS模块#os模块就是对操作系统进行操作,使用该模块必须先导入模块:import os#getcwd() 获取当前工作目录(当前工作目录默认都是当前文件所在的文件夹)result = os.getcwd()print(result)#chdir()改变当前工作目录os.chdir('d:/python')result = os.getcwd()print(result)...

2019-07-22 18:42:20 224 1

原创 os模块

很多时候他的一些功能只在当前程序进行中有效,程序退出就失效os 模块提供了很多允许你的程序与操作系统直接交互的功能得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() #不是创建执行文件的所在目录返回指定目录下的所有文件和目录名:os.listdir()函数用来删除一个文件:os.remove()删除多个目录:os.removedirs(r“c:\pytho...

2019-07-22 15:33:53 91

原创 斐波那契数列,递归函数

斐波那契数列F(1) = 1,F(2) = 1, F(3) = F(1) + F(2)… Fn = F(n-2) + F(n-1)求斐波那契数列第N项,根据网上查来的公式能力有限,所以算法很低级,目前凑合用吧,打印出第N项数字n = int(input('>>>'))a = (1 + 5**0.5)/2b = (1 - 5**0.5)/2c = (5**0.5)/...

2019-07-22 15:10:03 1787

原创 Python的关于定义函数的身份信息管理系统的练习

主要学习了def定义函数的用法与应用定义一个个函数然后具体编辑每个函数中的内容做了一个能够供数据输入输出修改删除的身份信息管理系统代码如下...

2019-03-27 09:02:55 161

空空如也

空空如也

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

TA关注的人

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