matlab-对数据集加噪声并实现tsne可视化

matlab-对数据集加噪声并实现tsne可视化

最近才知道,原来可以不用模型,也能实现对数据集数据的可视化。

**一、**以COIL-100数据集为例子。

问题:
前提:首先对COIL-100数据集根据角度0°-175°和180°-255°,分别划分成C1,C2两个子数据集。
目的:
①实现C1-C2的tsne可视化;
②对COIL-100数据集添加遮挡物,实现C1-C2的tsne可视化。
平台:
matlabR2019b 以及 Pycharm2022

**

二、解决方法

**
(1)首先获取得到我们的COIL-100的数据集,以及划分好的C1,C2数据集:
在这里插入图片描述

(2)----------对数据集图片添加遮挡物----------
分别对COIL-100-1和COIL-100-2数据集添加遮挡物
我借鉴了这个博客数据增强-在图片中添加遮挡物
这个博客是对数据集添加不规则的五边形,我自己改成了:添加长方体遮挡物,且位置随机,python代码如下:

import randomimport itertoolsimport os
import PIL.Image as Image
import PIL.ImageDraw as ImageDraw# 原始图片的存放位置
PATH = 'C:/Users/lenovo/Documents/MATLAB/COIL-Augment-tsne/data/COIL-100/'
# 新生成的图片的保存位置
SAVE_PATH= 'C:/Users/lenovo/Documents/MATLAB/COIL-Augment-tsne/data/COIL-100-noise-10x10/'
# 要在图片上生成几边形的物体,N=5代表五边形
N = 4def drawObs(path, savePath, n):for file in os.listdir(path):if not file.lower().endswith(('.bmp', '.dib', '.png', '.jpg', '.jpeg', '.pbm', '.pgm', '.ppm', '.tif', '.tiff')):continueimg = Image.open(path + file)(x, y) = img.sizerandom_list = list(itertools.product(range(1, x), range(1, y)))points = random.sample(random_list, n)draw = ImageDraw.Draw(img)x = random.randint(0, 255)#ImageDraw.ImageDraw.polygon(xy=points, fill=(x1, x2, x3), self=draw)draw.rectangle((x,x,x+20,x+10),fill=(0,0,0))img.save(savePath + 'rand' + file)print(file)if __name__ == '__main__':drawObs(PATH, SAVE_PATH, N)

于是,我们得到 添加了随机遮挡物的C1和C2数据集:COIL-100-agument-1和COIL-100-agument-2.
在这里插入图片描述

(3)----------数据集转换为.mat文件----------
分别将COIL-100-1, COIL-100-2, COIL-100-agument-1 和 COIL-100-agument-2,四个数据集转换成.mat文件。
.png向.mat文件转换的代码,我借鉴了这个博客将COIL数据集转换成.mat文件

clear
clc
path = 'D:\COIL\coil-100\';     %源数据集路径
save_path = 'D:\COIL\';     %处理之后保存的路径
file = dir([path,'*.png']);     %列出源路径下所有.png文件的信息:name date bytes...COIL = [];
Label = [];
for i = 1:length(file)      %源路径下png文件的个数%%%%对图片本身数据做处理image0 = imread([path,file(i).name]);       %读取某一张图片str = file(i).name;     %图片名保存为strimage1 = rgb2gray(image0);      %将彩图转换为灰度图像image2 = im2double(image1);     %将图片中unit8转换为double[a,b] = size(image2);       %a为图片行数 b为图片列数image3 = reshape(image2,1,a*b);     %将a*b的图片转换为1行COIL = [COIL;image3];       %每一张图片都加载在上一张图片的下一行fprintf('%d th starting...\n',i);       %记录程序运行过程%%%%对图片标签做处理 图片名为‘obj(类标签)__(拍摄角度).png’%主要提取类标签LabelStart = strfind(str,'j');      %找到图片名‘j’的位置(类标签前)LabelEnd = strfind(str,'_');        %找到图片名‘__’的位置(类标签后)label_temp = str2double(str(LabelStart+1:LabelEnd(1,1)-1));     %提取出图片类标签Label = [Label;label_temp];     %每个类标签按顺序排排坐
endsave savepath COIL Label

注意:
①保存的COIL-100-1 和 COIL-100-augment-1 图片保存为X_src,图片标签保存为Y_src,即上述代码中的COILLabel
②保存的COIL-100-2 和 COIL-100-augment-2 图片保存为X_tar,图片标签保存为Y_tar,即上述代码中的COILLabel

即生成的.mat文件如下图所示:
在这里插入图片描述
在这里插入图片描述

(4)最后分别将COIL-100-1和COIL-100-2可视化;以及COIL-100-agument-1 和 COIL-100-agument-2可视化。
matla可视化代码如下:

%%% tsne visulization
clc;
clear;
addpath('tSNE_matlab');savefile1 = 'C:\Users\lenovo\Documents\MATLAB\COIL-Augment-tsne\data\COIL-100-agumnet-1.mat';
savefile2 = 'C:\Users\lenovo\Documents\MATLAB\COIL-Augment-tsne\data\COIL-100-agumnet-2.mat';load(savefile1);
load(savefile2);
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Xs=X_src;
Xt=X_tar;
X=[Xs;Xt];color1=[1,0,0];%red
color2=[0,0,1];%blue
Y1=[repmat(color1,[length(Y_src),1]);repmat(color2,[length(Y_tar),1])];mappedX = tsne(X, Y1, 2,100,30);savefile = ['C:\Users\lenovo\Documents\MATLAB\COIL-Augment-tsne\save_tu\map_COIL_100_10x10','.mat'];
save(savefile, 'mappedX','X_src','X_tar','Y_src','Y_tar');

完成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/59281.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

动态场景建图 Removert(offline) 和 DynamicFilter(online)前端部分对比

1.Removert 简单来说2020年的REMOVERT是针对动态环境下的建图进行优化的一篇很好的作品。 针对的主要问题:若是采用点云特征进行匹配的话,动态障碍物在预处理阶段也会被剔除。那么,另一个方面,动态障碍物对点云地图的构建的影响在…

Moonbeam生态跨链互操作项目汇总

立秋已过,今年的夏天已经接近尾声,即将迎来凉爽的秋天。Moonbeam生态一同以往持续成长,在8月也举办了不少活动、完成集成合作以及协议更新。让我们一同快速了解Moonbeam生态项目近期发生的大小事件吧! Moonwell Moonwell是一个建…

查局域网所有占用IP

查局域网所有占用IP 按:winr 出现下面界面,在文本框中输入 cmd 按确定即可出现cmd命令界面 在cmd命令窗口输入你想要ping的网段,下面192.168.20.%i即为你想要ping的网段,%i代表0-255 for /L %i IN (1,1,254) DO ping -w 1 -n 1…

linux/centos zookeeper 使用记录

配置cfg 下载zookeeper-3.4.14.tar.gz负责到centos服务器解压 /xxx/zookeeper-3.4.14/conf/下创建zoo.cfg文件并配置以下属性,/bsoft/zookeeperdata/目录先预先创建 tickTime2000 initLimit10 syncLimit5 dataDir/bsoft/zookeeperdata/ clientPort2181zk启动/重启/关…

11.物联网lwip,网卡原理

一。LWIP协议栈内存管理 1.LWIP内存管理方案 (1)堆heap 1.灰色为已使用内存 2.黑色为未使用内存 3.紫色为使用后内存 按照某种算法,把数据放在内存块中 (2)池pool 设置内存池,设置成大小相同的内存块。 2…

Easy Rules规则引擎(2-细节篇)

目录 一、序言二、规则引擎参数配置实例1、skipOnFirstAppliedRules示例(1) FizzRule(2) BuzzRule(3) FizzBuzzRule(4) NonFizzBuzzRule(5) FizzBuzzRulesLauncher 2、skipOnFirstNonTriggeredRule示例3、skipOnFirstFailedRule示例 三、组合规则1、UnitRuleGroup组合规则2、Ac…

基于Java的基数排序(详述)

基于Java的基数排序(详述) 原理介绍Java实现文献参考 原理介绍 一、什么是基数排序 (1)通过键值得各个位的值,将要排序的元素分配至一些桶中,达到排序的作用 (2)基数排序法是属于稳…

Unity Meta Quest MR 开发教程:(二)自定义透视 Passthrough【透视功能进阶】

文章目录 📕教程说明📕动态开启和关闭透视⭐方法一:OVRManager.instance.isInsightPassthroughEnabled⭐方法二:OVRPassthroughLayer 脚本中的 hidden 变量 📕透视风格 Passthrough Styling⭐Inspector 面板控制⭐代码…

固定资产台账怎么管理

固定资产台账是指企业对固定资产进行登记、分类、统计和管理的账簿。固定资产管理系统是一款专业的固定资产管理软件,可以帮助企业实现资产全生命周期管理,包括资产采购、入库、领用、归还、维修、报废等环节。系统具有实时监控、预警提醒、报表分析等功…

App Inventor 2 开发 ChatGPT 对话App

ChatGPT大家应该不会陌生,它的回答内容非常的专业及深入,具有实际的可指导性。我们通过App Inventor 2开发一个简单的对话App,先看效果: App Inventor 2 ChatGPT教育领域对话演示 代码块如下: 用到的核心组件“ChatBot…

6.oracle中listagg函数使用

1. 作用 可以实现行转列,将多列数据聚合为一列,实现数据的压缩 2. 语法 listagg(measure_expr,delimiter) within group ( order by order_by_clause); 解释: measure_expr可以是基于任何列的表达式 delimiter分隔符&#xff0c…

HTML学习笔记02

HTML笔记02 页面结构分析 元素名描述header标题头部区域的内容(用于页面或页面中的一块区域)footer标记脚部区域的内容(用于整个页面或页面的一块区域)sectionWeb页面中的一块独立区域article独立的文章内容aside相关内容或应用…

红黑树(AVL树的优化)上

红黑树略胜AVL树 AVL树是一颗高度平衡搜索二叉树: 要求左右高度差不超过1(严格平衡) 有的大佬认为AVL树太过严格,对平衡的要求越严格,会带来更多的旋转(旋转也还是会有一定的消耗!!…

WordPress使用子主题插件 Child Theme Wizard,即使主题升级也能够保留以前主题样式

修改WordPress网站样式,主题升级会导致自己定义设置的网站样式丢失,还需要重新设置,很繁琐工作量大,发现在WordPress 中有Child Theme Wizard子主题插件,使用Child Theme Wizard子主题插件,即使主题升级&am…

2023年下半年西安/广州/深圳软考(中/高级)开班啦!!!

软考是全国计算机技术与软件专业技术资格(水平)考试(简称软考)项目,是由国家人力资源和社会保障部、工业和信息化部共同组织的国家级考试,既属于国家职业资格考试,又是职称资格考试。 系统集成项…

智慧校园用电安全解决方案

随着科技的不断发展,智慧校园建设逐渐成为了教育行业的一大趋势。在这个过程中,电力系统作为校园基础设施的重要组成部分,其安全、稳定、高效的运行显得尤为重要。下面小编来为大家介绍下智慧校园用电安全解决方案吧! 一、智慧校园电力系统现…

抖店无货源和工厂直发有什么区别?聊下无货源的概念和做店思路

我是王路飞。 最近收到了几条私信,都是关于做抖店的,其中有一条吸引了我的兴趣。 他问的是:抖店的无货源和工厂直发有什么区别吗? 说实话,这个问题,我一开始是不打算回复的,因为没有意义。 …

C# task多线程创建,暂停,继续,结束使用

1、多线程任务创建 private void button1_Click(object sender, EventArgs e) //创建线程{CancellationToken cancellationToken tokensource.Token;Task.Run(() > //模拟耗时任务{for (int i 0; i < 100; i){if (cancellationToken.IsCancellationRequested){return;…

[C++ 网络协议] 多进程服务器端

具有代表性的并发服务器端实现模型和方法&#xff1a; 多进程服务器&#xff1a;通过创建多个进程提供服务。✔ 多路复用服务器&#xff1a;通过捆绑并统一管理I/O对象提供服务。 多线程服务器&#xff1a;通过生成与客户端等量的线程提供服务。 目录 1. 进程的概念及应用 1.…

CTFhub-文件上传-前端验证

burp 抓包 --> 重发--> 查看源代码 用 GodZilla 生成木马 文件名为 1.php.jsp 上传-->抓包-->改包 (删掉 .jpg) --> 点击 放行 木马文件位置为&#xff1a;http://challenge-f0531d0c27641130.sandbox.ctfhub.com:10800/upload/1.php 用 蚁剑连接 ctfhub{4743b…