自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 资源 (5)
  • 收藏
  • 关注

原创 机器视觉1:图像预处理与瑕疵检测

自行拍摄鸡蛋破损照片,简述拍摄照片时应注意的事项(包括相机角度,背景设置,光线环境,拍摄距离等);简述图片预处理和瑕疵检测时的考虑与方案设计。1.拍照注意事项①相机角度尽量在鸡蛋的正上方约15cm处;②调整镜头,使鸡蛋位于拍摄图像中心;③背景颜色为黑色;④背景需展平且干净,不可有褶皱或其他干扰色点;⑤不宜在灯光正下方拍摄,易存在阴影;⑥在光源照射下,不要使背景过亮或过暗,拍摄时易反光或无区分度;2. 算法大致步骤①图像亮度调整、去噪、锐化首先,将原RGB图像转为灰度图像。为提高图像对比

2022-05-22 17:08:26 3657 8

原创 安装Tensorflow的简单方法

安装Tensorflow的简单方法

2022-04-09 16:47:53 6950 24

原创 Python抓取excel中关键字

在面对几k行甚至上万行的excel数据时,如果只需要找出我们所需的某几行数据,可利用此代码,在设置好excel的路径、excel文件名和关键字之后,即可抓取所需数据并输出至新的excel中。三个参数:所读取的excel(绝对路径+文件名+后缀)workbook = xlrd.open_workbook('shuju.xls')关键字 if aaa.find('关键字')>0:结果保存jieguo.save('结果.xls') #保存新生成的Excelimport xl

2021-01-19 13:47:31 7014 6

原创 CCFCSP 202112-1:序列查询

CCFCSP 202112-1:序列查询 AC代码

2023-03-07 13:55:03 168

原创 CCFCSP 202112-2:序列查询新解

CCFCSP 202112-2:序列查询新解AC代码

2023-03-07 13:43:40 272

原创 机器视觉3:光度立体技术

(1)实验素材中提供了花瓶,球,莫扎特半身像的高度数据(vase.mat, mozart.mat, sphere.mat)。利用load命令将高度数据加载后,对高度数据求出梯度,并转化为法向量。自行编写程序绘制各物体(花瓶,球,莫扎特)基于朗伯模型的四幅图像,四幅图像的光照角度设置为:slant角45度不变,Tilt角度分别为0,90,180,270度的四幅照片,分别存为sphere1.bmp,sphere2.bmp,sphere3.bmp,sphere4.bmp;vase1.bmp, vase2.bmp,

2022-05-22 18:01:24 2807 8

原创 机器视觉2:工件的测量与识别

1)尺寸检测在提供的实验素材中,“coins.jpg”和“sample_25.75mm.jpg”两幅图像是在同一视角,同一设备参数(相机,焦距,视野,工作距离均相同)下拍摄,已知“sample_25.75mm.jpg”图中硬币直径为25.75mm(毫米),请标出“coins.jpg”中每个硬币的实际直径为多少毫米。建议解题思路(仅供参考,可自行设计):预处理(调整到合适对比度,模糊度,目的使二值化不至于出现很多碎块),二值化,形态学,检测连通域,确定最大外接矩形尺寸;二幅图进行以上处理,并根据线像素比例

2022-05-22 17:27:23 1700

原创 机器视觉开篇

(1)读取matlab自带图像‘pout.tif’。将图像矩阵存储为一个列向量。如原图像矩阵维度为291240,将其转变为698401的列向量;要求该代码也可实现对其他灰度图像进行转换。%% 2clc;clear;close all;I = imread('pout.tif');imshow(I)[img_high,img_wide] = size(I);new_form = zeros(img_high*img_wide,1);for i = 1:img_wide for j = 1

2022-05-20 11:36:21 841

原创 数字图像处理八:图像分割

(1)阈值法分割:选择一副灰度图像,用迭代阈值实现分割,并对分割结果进行分析;%%阈值分割clc;clear;close all;I=imread('实验图片素材\word.jpg');I=rgb2gray(I);subplot(121),imshow(I);I=double(I);T=(min(I(:))+max(I(:)))/2;%设定初始阈值done=false;%定义开关变量,用于控制循环次数%while ~done是循环条件,~是“非”的意思,此处done=0:说明是无限循环,

2022-05-20 11:12:30 726

原创 数字图像处理七:图像分割

边缘检测:采用Roberts、Prewitt、Sobel、Log、Canny算子将图像中各不同区域的边缘(边界)检测出来,以达到检测的目的。常用的一阶微分边缘检测算子模板有Roberts、Prewitt、Sobel算子。这些算子都是利用边缘处的梯度最大这一性质来进行边缘检测的,即利用了灰度图像的拐点位置是边缘的性质。(1) Sobel算子以待增强图像 的任意像素 为中心,取3*3像素窗口,分别计算窗口中心像素在 和 方向的梯度。增强后的图像在 处的灰度值为用模板表示为:(2) Prewitt算

2022-05-20 11:08:30 522

原创 数字图像处理六:图像质量评价标准&图像编码

(1)噪声滤除:分别采用均值滤波器和中值滤波器对受高斯噪声(椒盐噪声)污染的图像进行滤波处理。对图像的去噪效果,最常用的评价指标是峰值信噪比(Peak Signal to Noise Ratio,PSNR),其计算公式如下:其中,MSE指均方误差(Mean Square Error,各像素点灰度值误差平方的平均数):其中,X为理想图像(未被噪声污染的图像); 为去除噪声后所得图像; 为图像的像素坐标集合(行数*列数)。显然,PSNR值越大表明去噪效果越好。考虑到噪声通常为锐化和高频信息,因此,可采

2022-05-20 10:51:17 3189

原创 数字图像处理五:图像复原

(1) 采用顺序统计滤波器对图像进行滤波:对lena图片生成各种程序的含噪图像,采用均值滤波、中值滤波、最大滤波器、最小滤波器,对含噪图像进行滤波。%% 1.泊松噪声滤除效果clc;clear;close all;img = imread('实验图片素材/lena256.jpg');img = rgb2gray(img);%泊松噪声img_n_po = imnoise(img,'poisson');%均值滤波N = 3;h = fspecial('average',N);I1 = fil

2022-05-20 10:21:32 745

原创 数字图像处理四:图像变换

(1)选择一幅图像,进行离散傅里叶变换,再对其进行X轴与Y轴上的平移,得其离散傅里叶变换,观察原图的傅里叶变换和平移后的傅里叶频谱的对应关系。%% (1)clc;clear;close all;I = imread('实验图片素材/1.bmp');subplot(321);imshow(I);title('原图像');I = I(:,:,3); %取前两维+第三维下表为3的全部数据fftI = fft2(I); %对原始图像进行二维离散傅里叶变换sfftI = fftshift(fft

2022-05-20 10:08:19 2041

原创 数字图像处理三:图像增强

(1)直方图均衡化处理:给定一幅图片,作出均衡化后的直方图,并将原图和均衡化后的图片进行对比。直方图均衡化是图像增强的重要手段,把输入图像的直方图进行均衡化处理后,可以获得更加清晰的图像。%% 直方图均衡化处理clc;clear;close all;sour_img = imread('实验图片素材/lena256.jpg');equ_img = histeq(sour_img,256); %均衡化subplot(221);imshow(sour_img);title('原图');sub

2022-05-20 10:01:01 1323

原创 数字图像处理二:图像空域运算

(1)选择两幅图像,一幅是物体图像,一幅是背景图像,采用正确的图像代数运算方法,分别实现图像叠加、混合图像的分离和图像的局部显示效果。原理:叠加:将两幅图像进行加法运算。分离:将混合图像与背景图像做减法运算;局部显示:设置掩模模板,对于需要保留下来的区域,掩模图像的值置为1,而在需要被抑制掉的区域,掩模图像的值置为0。%% 第一题:图像叠加clc;clear;close all;img1 = rgb2gray(imread('实验图片素材/lena256.jpg'));img2 = imre

2022-05-19 21:01:51 1743

原创 数字图像处理一:图像采样和量化

(1)试对lena图像分别进行4倍和16倍减采样,查看其减采样效果。%% 原始图像clc;clear;close all;img = imread('实验图片素材/lena.bmp');subplot(131);imshow(img);title('原始图像');%四倍减采样f1=img(1:2:end,1:2:end);subplot(132);imshow(f1);title('四倍减采样');% 十六倍减采样f2=img(1:4:end,1:4:end);subplot(133)

2022-05-19 20:50:00 1985

原创 Matlab计算器设计

MATLAB的图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。计算器实现的功能有:数字0~9和小数点的输入显示,平分、开平方和对数的输入显示。可进行加减乘除、正弦、余弦、正切、反正弦、反余弦、反正切的计算,可求阶乘,倒数,括号输入,二进制转十进制、十进制转二进制。还可以通过输入变量x和y,结合坐标轴编辑框和曲线颜色编辑框实现函数y=f(x)的曲线绘制。计算器设计时主要利用到get和set两个函数进行各个控件属性值的传递

2022-05-19 20:32:40 13236 6

原创 基于Pytorch框架的手写体识别

import torchimport torch.nn as nnfrom torch.autograd import Variablefrom torch.utils.data import DataLoaderfrom torchvision import datasets, transformsimport matplotlib.pyplot as pltEPOCH = 10BATCH_SIZE = 100LEARNING_RATE = 0.001DOWNLOAD = Fals.

2022-05-18 22:31:57 353

原创 深度学习入门:手写体识别

手写体识别的两层神经网络

2022-05-18 22:23:39 963 1

原创 深度学习入门:猫的识别三层神经网络

不多说了,直接上代码。import numpy as npimport matplotlib.pyplot as plt #画图 import scipy #数值运算、图像处理import h5py #存放数据集和组import skimage from skimage import transform from scipy import ndimage #N维图像包from PIL import Imagefrom lr_utils import l

2022-05-18 21:38:58 182

原创 深度学习入门:猫的识别单层神经网络

猫的识别是深度学习的入门项目

2022-05-18 21:24:42 338

原创 基于Kmeans聚类算法的男女性别划分

一.简单介绍1.概述:K-means聚类算法也称k均值聚类算法,是集简单和经典于一身的基于距离的聚类算法。它采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。该算法认为类簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。2.算法核心思想:K-means聚类算法是一种迭代求解的聚类分析算法,其步骤是随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。每分

2022-05-18 20:51:01 957

原创 MATLAB解决图像应用中rectangle添加标签后的图像保存问题

matlab使用rectangle对感兴趣的区域进行标注时,如果用imwrite或是save,saveas将图片保存起来,会导致rectagle所画的标注丢失。因为rectangle画线不会对原图片的像素进行添加,无法影响到原图像,所以保存的图片是不存在画线的。具体解决方法:获得该图片当前句柄( 例如要imshow(h) ):h=gcf;%gcf为当前figure显示图片的句柄saveas(h,[path ‘imgae_name.jpg’]);转载:http://blog.sina.com.cn

2021-04-06 00:04:40 664

原创 数据结构⑤:查找操作

一、要求:(1)随机产生n个互不相同的两位整数,构造一个查找表。(2)输入一个整数,利用顺序查找法在查找表中查找该整数是否存在。若查找成功,返回该整数在表中的位置;查找失败则返回0。(3)对查找表按递增顺序进行排序。(4)输入一个整数,利用折半查找法在有序表中查找该整数是否存在。若查找成功,返回该整数在表中的位置;查找失败则返回0。(5)输入互不相同的一组整数,构造一棵二叉排序树,要求: ① 按递减有序的顺序输出; ② 输入一个整数,查找该整数是否在该二叉排序树中,查找成功返回1,否则返回0;

2021-02-01 12:38:33 1208 2

原创 数据结构:二叉树的转换与应用

一、要求下图中所给树表示的是某家族的家谱: (1)此家谱在内存中我们选择什么样的存储结构合适?并画出转化后的存储结构 (2)写算法输出家谱中各结点孩子数目二、代码和结果1.转化后的存储结构:2.代码:#include<stdio.h>#include<stdlib.h>typedef struct CSNode{ char data; struct CSNode *firstchild,*nextsibling;}CSNode,*CSTree;voi

2021-02-01 12:16:07 146

原创 数据结构④:图的遍历

一、要求:(1)输入一组顶点,建立无向图的邻接矩阵。(2)输入一组顶点,建立有向图的邻接表。(3)分别对无向图和有向图进行DFS(深度优先遍历)和BFS(广度优先遍历)。写出深度优先遍历的递归和非递归算法。(4)根据建立的有向图,判断该图是否是有向无环图,若是,则输出其一种拓扑有序序列。二、思路:1)邻接矩阵的建立:  在图G=(V,E)中,根据输入的顶点和边的信息,若顶点Vi与顶点Vj的存在边,且边(Vi,Vj)∈E或边<Vi,Vj>∈E,则将邻接矩阵中的G.arcs[i][j]

2021-02-01 12:07:58 534 2

原创 数据结构:栈的应用(中缀表达式)

一、要求:输入一个表达式,表达式中只包含整数和加、减、乘、除四种双目运算符,计算给定表达式的值(参考中缀表达式求值)二、代码:#include<stdio.h>#include<stdlib.h.>#include<string.h>#define StackInitSize 100#define StackIncrement 10typedef struct{ char *base; int top; int stacksize;}SqStac

2021-02-01 11:33:30 1389 1

原创 数据结构②:栈与队列的应用

一、要求:1)输入一个十进制数,利用栈操作,将该数转换成n进制数。2)输入一个表达式,表达式中包括三种括号“()”、“[]”和“{}”,判断该表达式的括号是否匹配。二、思路:1)进制转换任意一个十进制正整数n,都能转化为一个d进制正整数。该算法基于原理n=(n/d)*d+n%d 。在n不为0的前提下,执行循环操作:让n%d的结果入栈,并执行n=n/d改变n值。计算结束后,再将栈中的元素依次出栈,即可得到从高位到低位的输出结果。此处要考虑两种情况,一种是将十进制转为低于10的进制的情况,另一种是

2021-02-01 11:19:27 680 1

原创 数据结构:单链表的操作

一、要求设指针la和lb分别指向两个无头结点单链表中的首元结点,试设计从表la中删除自第i个元素起共len个元素,并将它们插入到表lb的第j个元素之后的算法。二、代码#include<stdio.h>#include<stdlib.h>typedef struct LNode{ int data; struct LNode *next;}LNode,*LinkList;//*********链表初始化**********//void InitLinkList(

2021-02-01 11:07:23 1196 1

原创 数据结构①:线性表的基本操作

一、要求:1.顺序表的操作①随机产生一组2位整数,建立线性表的顺序存储结构,要求表中元素互不相同。② 实现该线性表的遍历。③ 在该顺序表中查找某一元素,查找成功显示查找元素,否则显示查找失败。④ 在该顺序表中删除或插入指定元素。⑤ 建立两个按值递增有序的顺序表,将他们合并成一个按值递减有序的顺序表。2.单链表的操作① 输入一组整型元素序列,使用尾插法建立一个带有头结点的单链表。② 实现该线性表的遍历。③ 实现单链表的就地逆置。④ 建立两个按值递增有序的单链表,将他们合并成一个按值递增

2021-02-01 11:00:25 2786

原创 Linux笔记④:帮助命令

1.man ( manual : 获得帮助信息 )命令格式: man [命令或配置文件] ·查看配置文件时不需写其绝对路径例: 查看ls命令的帮助信息 man ls ·查看时输入 /-l ,可高亮关键字-l例: 查看配置文件services的帮助信息 man services 例:查看passwd 配置文件的帮助 man 5 passwd2.whatis ( : 查看命令的简短信息 )命令格式: whatis [命令]3.apropos ( : 查看配置文件

2021-01-28 22:29:25 60

原创 Linux笔记③:文件搜索命令

文件搜索命令:find命令格式:find [搜索范围] [匹配条件]根据文件名查找 ( -name ) -name (区分大小写) -iname (不区分大小写) 例:在目录/etc下查找文件init 精准搜索:find /etc -name init 模糊搜索: find /etc -name *init* (名字里包含init) find /etc -name init* (以init开头的文件) find /etc -name in

2021-01-25 19:15:36 124

原创 Linux笔记②:权限管理命令

四、权限管理命令1.权限详解(重点):-------------------------------------------------------------------------------------------------------------------| 字符 | 权限 | 对文件的含义 | 对目录的含义 |-------|----------|

2021-01-25 18:59:28 85

原创 Linux笔记①:文件、目录操作命令

一、目录处理命令:1.lsls -a 显示所有文件,包括隐藏文件ls -l 显示文件详细信息ls -lh 显示时文件大小以K为单位ls -d 查看指定目录信息 (一般与-l一起使用,后跟目录: ls -ld)ls -i 显示文件的i结点(inode) 索引ID号例:d rwx r-x r-x 2 linux1 linux1 4.0K Dec 24 15:23 Documents目录 读、写、执行 文件引用计数

2021-01-19 13:21:05 94 2

原创 numpy/pandas/matplot入门及深耕

一、numpy1.快速撸一遍Numpy代码2.【图解 NumPy】最形象的教程3.大名鼎鼎的菜鸟教程:Numpy教程二、pandas1. 非常全面的Pandas入门教程2. pands模块常用功能3. 缺失值填充的几种方法4. pandas用法大全5. pandas的替换和部分替换(replace)6. pandas中DataFrame修改index、columns名的方法7.pandas.concat实现竖着拼接、横着拼接DataFrame8.df.loc[]和df.il

2020-11-26 23:16:44 145

原创 Numpy常用函数

1.导入库包import numpy as npfrom numpy import newaxisfrom numpy import piimport matplotlib.pyplot as pltfrom numpy import ogrid2.生成矩阵#生成数组(矩阵)#用列表生成矩阵a = np.array([[1,2,3],[4,5,6]]) #2*3a = np.array([1,2,3]) #1*3#用arange生成向量reshape生成矩阵 a = np.ara

2020-11-08 16:58:08 214

原创 Python数据分析与展示③:pandas库

一、Pandas简介·Pandas是一个强大,灵活且易于使用的开源数据分析和处理工具,基于Numpy实现,常与Numpy和Matplotlib共同使用。·Pandas主要有两个数据类型:Series和DataFrame。·与Numpy对比:NumpyPandas基础数据类型扩展数据类型关注数据的结构表达关注数据的应用表达维度:数据间关系数据与索引间关系二、Series类型Series类型由一组数据及与之相关的数据索引组成:import pandas a

2020-10-26 20:50:39 459 1

原创 Python数据分析与展示②:Matplotlib库

一、Matplotlib库简介Matplotlib库由各种可视化类构成,是Python优秀的数据可视化第三方库。详见:Matplotlib效果实例matplotlib.pyplot是绘制各类可视化图形的命令子库,相当于快捷方式。引用时约定成俗:import matplotlib.pyplot as plt绘图例:import matplotlib.pyplot as pltplt.plot([3,1,4,5,2])plt.ylabel('Grade') #增加y坐标

2020-10-06 21:44:15 395 2

原创 图像手绘效果

图像手绘效果的特征:黑白灰色边界线条较重相同或相近色彩趋于白色略有光源效果手绘风格是在对图像进行灰度化的基础上,由立体效果和明暗效果叠加而成。通过调整像素之间的梯度值间接改变图像的明暗程度;立体效果则通过增加虚拟深度值来实现。简单来说就是利用像素之间的梯度值和虚拟深度值对图像进行重构,并根据灰度的变化来模拟人类视觉的明暗程度。贴上Python代码:from PIL import Imageimport numpy as npa = np.asarray(Ima.

2020-10-04 12:20:12 346

原创 Python数据分析与展示①:numpy库

Numpy库入门 numpy是一个开源的Python科学计算基础库,是Scipy、Pandas等数据处理或科学计算的库的基础。一、Numpy数组对象:ndarrayndarray是一个多维数组对象,由实际的数据和描述这些数据的元数据(数据维度、数据类型)构成。...

2020-10-01 17:58:45 423

MATLAB计算器源代码和GUI文件

MATLAB计算器源代码和GUI文件

2022-05-19

kmeans数据:男生和女生身高体重分布

kmeans数据:男生和女生身高体重分布

2022-05-19

猫的识别数据集,训练集共209张,测试集50张

猫的识别数据集,训练集共209张,测试集50张

2022-05-18

dlib-whl文件.zip

强大的Python机器学习包,dlib的whl文件,cd到目录后直接pip install,非常简单,不会出现网速过慢导致安装失败的问题,不会可私信

2021-05-09

基于C51单片机的电子密码锁实现

适用于单片机课程设计---电子密码锁的实现,内含Keil工程文件代码、Proteus虚拟仿真电路,设计论文、点阵提取工具等。

2021-01-19

空空如也

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

TA关注的人

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