matlab - 有没有办法减少像素分隔符代码的处理时间?
问题描述
我正在尝试将图像转换为一组可用于商业目的的数字处理和分析的数组。已经创建了一个代码并且它可以工作,但是有什么方法可以减少执行代码所花费的时间?
这是一种新技术商业化的最后阶段,需要考虑对该技术拍摄的图像的实时分析。
function pixelseperator()
clear all
close all
Image=imread('flirpolarcamtest3.png');
Image=uint16(Image);
[m,n]=size(Image);
Imagex=zeros(m/2,n/2);
Imagexrows=zeros((m/2),1);
col=1;
for ni=1:2:n-1
row=1;
for mi=1:2:m-1
Imagexrows(row)=Image(mi,ni);
row=row+1;
end
col=col+1;
Imagex(:,col)=Imagexrows;
end
Image0=Imagex;
启动代码所需的平均时间约为 0.74 秒,这是预期的,但对于所需时间来说有点太长了,并且包含太多中间体,使代码有点多余。我正在寻找一种方法来减少冗余,从而减少处理时间。
解决方案
您的代码与以下内容相同:
Image = imread('flirpolarcamtest3.png');
Image0 = uint16(Image(1:2:end-1,1:2:end-1));
我不知道为什么你的循环去n-1
and m-1
,而不是n
and m
。对于偶数大小的图像,这些将是相同的,但对于奇数大小的图像,您会使用您的代码错过一行和一列。
推荐阅读
- postgresql - 从年份和 doy 列创建日期列
- r - plot_grid - 标签不可读,
- javascript - 对 ecma/es5、ecma/es6 感到困惑。我怎么知道我的代码库是什么?
- python - 在 Python 中将 JSON 文件转换为数据框
- xcode - 如何修复 Xcode 中的错误“您无权写入文件“stdio.h”的文件夹?
- android - 在自定义视图组中设置布局参数
- azure - 为事件网格的 API 连接创建 ARM 模板
- aws-code-deploy - 使用 AWS CodeDeploy 从 Amazon S3 自动部署
- maven - 在 aem 项目中添加依赖后出现“无法解析为类型”错误
- oracleclient - 在哪里可以下载适用于 Windows 的 Oracle 11g 客户端安装程序?