MATLAB坐标系中绘制图片

MATLAB坐标系中绘制图片

方法一

使用图片坐标循环的方式,代码如下。

clear,clc,close all
tic;
map=imbinarize(imread('map.bmp'));%map is logical

for i = 1:1000
    for j = 1:1000
        if map(i,j)
          continue;
        else
          plot(i,j,'LineStyle','none','Marker','.','Color','black');
          hold on;
        end
    end
end
fprintf('processing time=%d \n', toc);

运行时间为1.538011e+02 秒,且运行完很卡,基本不能使用,小规模矩阵可以考虑。

可以考虑使用一定方法进行优化,比如分割成小矩阵判断是否为全零矩阵决定是否对这一区域进行绘图;取小矩阵的中心点进行测试等。

方法二

使用向量化编程。

clear,clc,close all

tic;
map=flipud(imbinarize(imread('map.bmp')));%map is logical
% 测试数据矩阵大小
[m,n] = size(map);
% 得到0的下标
[row,col] = ind2sub([m,n],find(~map));
% 作散点图
figure;
scatter(0.1.*col,0.1.*row,'k','.'),hold on;

fprintf('processing time=%d \n', toc);

运行时间为7.904587e-02秒,应用效果很好。

参考文献

小木虫-libralibra

百度知道

转载于:https://www.cnblogs.com/jingshikongming/p/8596858.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值