惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

MyScale Blog
MyScale Blog
博客园 - 司徒正美
A
About on SuperTechFans
Vercel News
Vercel News
H
Hackread – Cybersecurity News, Data Breaches, AI and More
爱范儿
爱范儿
I
InfoQ
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园_首页
Google DeepMind News
Google DeepMind News
T
Tailwind CSS Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
F
Fortinet All Blogs
S
SegmentFault 最新的问题
阮一峰的网络日志
阮一峰的网络日志
D
Docker
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
G
Google Developers Blog
Stack Overflow Blog
Stack Overflow Blog
M
MIT News - Artificial intelligence
Jina AI
Jina AI
H
Help Net Security
量子位
IT之家
IT之家

RealCat

📝笔记:图像匹配挑战赛回顾(CVPR 2023) | RealCat 📝笔记:Stable Diffusion QR-Code | RealCat 📝笔记:Python zip() | RealCat 📝笔记:图像匹配挑战赛回顾(CVPR 2022) | RealCat 📝笔记:5秒钟训练NeRF,NVIDIA Instant NeRF 测试 | RealCat 📝笔记:Visualization Localization Revisited(under construction...) | RealCat 📝笔记:使用vlfeat的Matlab接口简单实现BOW以及VLAD | RealCat 📝笔记:一些关于KD-Tree的知识点 | RealCat 📝笔记:简明矩阵求导术之分子布局与分母布局 | RealCat 📝笔记:使用Clockwise/Spiral Rule技巧轻松读懂变量/函数声明 | RealCat 🔨工具:优雅地下载Youtube视频 | RealCat 🔨工具:每日自动获取arXiv论文摘要 | RealCat 🎃资料: 从Eigen向量化谈内存对齐 | RealCat 📝笔记:图像匹配挑战赛总结 (SuperPoint + SuperGlue 缝缝补补还能再战一年) | RealCat 📝笔记:ICCV 2021最佳学生论文 | COLMAP 优化建图组件 Pixel-Perfect SFM | RealCat 📝笔记:CVPR 2021 | PixLoc: 端到端场景无关视觉定位算法(SuperGlue一作出品) | RealCat 📝笔记:港大MARS实验室 R3LIVE (R2LIVE升级) 鲁棒实时RGB雷达视觉惯导紧耦合状态估计 | RealCat 🔨工具:bash常用命令 | RealCat 📝笔记:VSLAM基础知识导图 | RealCat 📝笔记:Patch-NetVLAD论文阅读 | RealCat 📝笔记:光场相机能否用于SLAM? | RealCat 📝笔记:读写文本常用操作 | RealCat 📝笔记:CVPR 2020 视觉定位挑战赛冠军方案 | RealCat 📝笔记:三维重建系列 COLMAP: Structure-from-Motion Revisited | RealCat 🐈芒果驾到 | RealCat 📝笔记:GMS一种基于运动统计的快速鲁棒特征匹配过滤算法 | RealCat 🌡️秋天到了,还是很热 | RealCat 📝笔记:AdaLAM: Revisiting Handcrafted Outlier Detection 超强外点滤除算法 | RealCat 🔨工具:使用vercel加速Hexo静态博客访问 | RealCat 📝笔记:ORB-SLAM3论文阅读 | RealCat
MATLAB:多个不同维度的箱线图画在一起 | RealCat
2017-01-16 · via RealCat

以下是我在使用Matlab编程时遇到的问题以及解决方法,最后彩蛋随时补充。

多个不同维度的箱线图画在一起


%%  GENERATE RANDOM DATA

dataA = 10 *rand(100,1);
% subplot(121);boxplot(dataA)

dataB = 10 *rand(200,1) - 5*rand(200,1);
% subplot(122);boxplot(dataB)

%% CONSTRUCT MPGs

MPGs{1} = dataA;
MPGs{2} = dataB;

figure;
data = [MPGs{1} ;MPGs{2} ];

s_groupA = repmat({'item 1'},numel(MPGs{1}),1);
s_groupB = repmat({'item 2'},numel(MPGs{2}),1);

group = [s_groupA;s_groupB];

%% BEGIN DRAW
boxplot(data,group);

FONTSIZE = 30;
set(gcf,'color',[1 1 1])
ylabel('items value');
set(gca,'fontsize',FONTSIZE)
set(gcf,'pos',[ 986,  414, 1274, 826])

Matlab绘制GIF动图

input_file_path='your image folder';
out_name = 'out'; %output name

img_path_list=dir(strcat(input_file_path,'*.jpg')); %image format
[~, ind] = sort([img_path_list(:).datenum], 'ascend');
img_path_list = img_path_list(ind);
img_num=length(img_path_list);

if img_num == 0
    disp('No images in the folder!');
else
    for j=1:img_num
        image_name = img_path_list(j).name;
        read_image = imread(strcat(input_file_path,image_name));
        imshow(read_image,'border','tight','initialmagnification','fit');
        axis normal;
        truesize;

        n=j;
        frame(n)=getframe(gcf); % get the frame
        image=frame(n).cdata;
        [image,map]     =  rgb2ind(image,256);

        if n==1
%              imwrite(image,map,outname,'gif');
             imwrite(image,map,[out_name '.gif'],'gif','Loopcount',inf);
        else
             imwrite(image,map,[out_name '.gif'],'WriteMode','append','DelayTime',0.2);
        end
    end
end

Matlab 局部放大图像

论文里的局部放大图,再也不用每次手动截了。

function small_im=ZoomIm_(im,pos)
% im= imread('lena.jpg');
% pos=[226,221,340,384];
% [左上X,左上Y,右下X,右下Y]

clc
close all;
figure;

up_leftX=pos(1);
up_leftY=pos(2);
down_rightX=pos(3);
down_rightY=pos(4);

%% mark rectangle in source image
imshow(im);hold on;
set(gcf,'color',[1 1 1]);
line([up_leftX, down_rightX]   ,[up_leftY   ,up_leftY],'linestyle','-','linewidth',3,'color','r');
line([up_leftX, up_leftX]      ,[up_leftY   ,down_rightY],'linestyle','-','linewidth',3,'color','r');
line([down_rightX, down_rightX],[up_leftY   ,down_rightY],'linestyle','-','linewidth',3,'color','r');
line([up_leftX, down_rightX]   ,[down_rightY,down_rightY],'linestyle','-','linewidth',3,'color','r');
hold off;

%% get rect image
figure;
small_im=im(up_leftY:down_rightY,up_leftX:down_rightX,:);
imagesc(small_im);
axis equal
axis off
set(gcf,'color',[1 1 1]);
set(gca,'xtick',[],'ytick',[]);
% set(gca,'position',[0.1 0.1,0.8 0.8])
set(0,'DefaultFigureMenu','figure');
% figure('menubar','on');
% set(0,'Default');
set(gcf,'Position',[500,200,800,500])
end

Matlab 保存超高质量图像

除了直接保存成eps或者emf格式之外,也可直接在绘制完图像之后,保持当前绘图窗口不要关闭,在命令行窗口键入如下命令,然后在word文档/PPT里ctrl+v粘贴即可。

uimenufcn(gcf,'EditCopyFigure')

Matlab 写入Excel错误

问题描述

Matlab 在创建EXCEL文件的时候总是出错,即使使用MATLAB自带的程序。 问题描述:在Matlab中使用xlswrite函数时,如果excel文件存在时,则程序能够正常运行;当excel文件不存在时,则会出现错误:

Error using xlswrite (line 220) Error: 服务器出现意外情况。

解决之道

xlswrite函数在调用时会占用Excel的com端口,所以要保证在调用时这个端口是开放的,也就是没有被其他程序占用。打开任意一个Excel(我的是16版)文档,点击文件选项,弹出Excel选项卡,在加载项中可以看到,活动应用程序加载项,以及非活动应用程序加载项; 由于我的系统中装了一个福昕阅读器,该程序占用了Excel的com端口,所以当Matlab再去调用这个端口时就会出现异常。具体解决方法:点击管理旁边的下拉菜单,选择COM加载项,点击转到,把福昕阅读器的前面的勾去掉,然后确定。

Matlab设置绘图坐标轴信息

问题描述

Matlab 作图时更改纵轴刻度为科学计数法,指数放在框左上方

plot([0 1],[0 .02]) % 作图,换成自己的图像就可以~
oldLabels = str2num(get(gca,'YTickLabel'));
scale = 10^2;newLabels = num2str(oldLabels*scale);
set(gca,'YTickLabel',newLabels,'units','normalized');
posAxes = get(gca,'position');
textBox = annotation('textbox','linestyle','none','string',['x 10\it^{' sprintf('%d',log10(1./scale)) '}']);
posAn = get(textBox,'position');
set(textBox,'position',[posAxes(1) posAxes(2)+posAxes(4) posAn(3) posAn(4)],'VerticalAlignment','cap');

Matlab显示图片错误

问题描述

MATLAB图像显示总是白色

imshow是一个很强大的”武器”,显示图像简直无所不能,但这其中往往会出现问题。在处理图像时,我们的图像经常是经过了某种运算,为了保证其精度,系统会自动的将uint8型数据类型转化成double型。

如果直接运行imshow(I),我们会发现显示的是一个白色的图像。这是因为imshow()显示图像时对double型是认为在01范围内,即大于1时都是显示为白色,而imshow显示uint8型时是0255范围。而经过运算的范围在0-255之间的double型数据就被不正常得显示为白色图像了。

解决之道

  • 可以利用mat2gray()函数,这个函数是归一化函数,可以把数据归一化到0-1之间,再用imshow()就可以了;
  • 或者对于一个处理后的黑白图像Img,若为double型可以这样写:imshow(Img/max(Img(:)))
  • 还有一种就是:imshow(Img,[]);就是加一个[],即可以自动调整显示;

常用命令汇总

  • (2016.05.19)今天学到一个特别简单的语句,删除元胞数组中空元素:

    a(cellfun(@isempty,a))=[];
  • (2018年6月1日)在命令行敲入如下命令,如果运行出现错误,matlab会自动停在出错的那行,并且保存所有相关变量。

    dbstop if error

彩蛋