matlab 梯度图像,在matlab中快速计算图像的梯度
感谢您的所有答案和有用的建议.我接受了pseudoDust,Hugues,Dima和High Performance Mark的建议并编写了我自己的代码.我的代码如下:
clc;clear all;close all;
x=32;
I = imread('coins.png');
I = imresize(I,[x x]);
I = double(I(:,:,1));
tic
[dx dy] = gradient(I);
toc
tic
[m,n]=size(I);
A = [I(:,2:end) zeros(m,1)];
B = [zeros(m,1) I(:,1:end-1)];
dx1 = [I(:,2)-I(:,1) (A(:,2:end-1)-B(:,2:end-1))./2 I(:,end)-I(:,end-1)];
A = [I(2:end,:) ; zeros(1,n)];
B = [zeros(1,n) ; I(1:end-1,:)];
dy1 = [I(2,:)-I(1,:) ; (A(2:end-1,:)-B(2:end-1,:))./2 ; I(end,:)-I(end-1,:)];
toc
nnz(dx-dx1)
nnz(dy-dy1)
我的基本想法是:渐变平均2个相邻位置(左和右或顶部和底部),除了它取值和相邻位置之间的差异的边缘.然后,我用matlab梯度函数(dx,dy)生成的矩阵检查了我生成的矩阵(dx1,dy1).
Elapsed time is 0.010232 seconds.
Elapsed time is 0.000066 seconds.
ans =
0
ans =
0
所以我相信我的代码是正确的.至少可以说,时间结果令人惊讶.然后我用matlab计算我的代码,用于不同大小的图像.
我得到了这个结果:
%x=16
Elapsed time is 0.010790 seconds.
Elapsed time is 0.000057 seconds.
%x=32
Elapsed time is 0.010564 seconds.
Elapsed time is 0.000069 seconds.
%x=64
Elapsed time is 0.010627 seconds.
Elapsed time is 0.000152 seconds.
%x=128
Elapsed time is 0.011346 seconds.
Elapsed time is 0.000669 seconds.
%x=256
Elapsed time is 0.017311 seconds.
Elapsed time is 0.004468 seconds.
%x=512
Elapsed time is 0.044148 seconds.
Elapsed time is 0.030435 seconds.
%x=1024
Elapsed time is 0.093386 seconds.
Elapsed time is 0.093029 seconds.
%x=2048
Elapsed time is 0.345423 seconds.
Elapsed time is 0.387762 seconds.
所以我的结论是这样的:对于高达1024X1024的图像大小,我的代码比matlab中内置的渐变命令更快.
编辑:我更新了我的答案并添加了此图表:
它清楚地表明,对于较小的数组大小,我的代码明显快于matlab梯度函数.
我的代码是否正确?伙计们请仔细检查并检查.请提供反馈.我实际上是matlab的新手,我对这个结果非常惊讶.请检查我在做什么是否正确?
matlab 梯度图像,在matlab中快速计算图像的梯度相关推荐
- excel排名_表格技巧—如何在Excel中快速计算排名
在利用excel统计成绩的时候,往往会使用它的排名,如果一个一个排会造成工作效率非常低,那么如何快速排名呢?今天我们和大家分享的就是如何在excel中快速计算排名. 首先打开一张我们需要排名的exce ...
- 地理计算 | EXCEL中快速计算列表的经纬度距离
前言 物流配送.城市通勤.测绘外业勘察等场景,经常使用EXCEL软件作为数据处理工具软件,在表格中记录经纬度列表,例如下图表格每行记录一个经纬度坐标,表示运动轨迹的坐标.根据业务要求需快速计算上下两个 ...
- MATLAB使用radon函数和iradon函数计算图像的投影并从投影中重构图像
%使用radon函数和iradon函数计算图像的投影并从投影中重构图像 P = phantom(256); %应用在X线断层摄影术里广泛使用一个测试图像::Shepp-Logan Head影像 ims ...
- 【图像生成Metrics】快速计算FID、KID、IS、PPL
1.介绍: This repository provides precise, efficient, and extensible implementations of the popular met ...
- 在VIVIDO中快速计算并输入N多个多字节数值(2J)
该文章需要使用宽屏模式浏览,推荐下载csdn浏览器助手工具 下载地址: CSDN开发助手-Chrome插件 程序员助手 1.进制转换 2.字节剥离 3.异或操作 4.只需计算一个数据,即可自动得到后面 ...
- 计算机二级班级排名公式,Excel中快速计算班级名次和年级名次,这样的方法值得借鉴...
这里有一份高一年级的月考成绩单,各科成绩已经统计完毕,共有627名学生参加考试,现在需要计算每名学生的总分和班级名次.年级名次. 数据整理 首先需要解决的一个问题是有些学生缺考,对应单元格数据为0,需 ...
- 【图像配准】基于Horn-Schunck和Lucas-Kanade等光流场实现图像配准matlab源码含GUI界面
光流法理论背景 1.什么是光流 光流(optical flow)是空间运动物体在观察成像平面上的像素运动的瞬时速度. 光流法是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前 ...
- 雷神之锤3快速计算算术平方根倒数算法中魔法数字的另一种求法(1)
对于雷神之锤3中快速计算算术平方根倒数算法中魔法数字的真正来源一直是个悬案. 本人对此进行了一番研究,有幸参悟其中奥秘,特分享给大家. 本人不爱码字,直接上图 上图中代码出自雷神之锤3,本人对其中魔法 ...
- 举个栗子!Tableau 技巧(165):快速计算工作日
来自银行用户的需求:我们的业务数据源表多.量大(超过 10 万行),并且常常需要分析工作日数据.这种情况,Tableau 能快速实现吗? 其实,在实际分析场景中,对于工作日的数据呈现,是普遍需求.尤其 ...
最新文章
- 深度学习理论与实战:基础篇电子书
- 给网页添加二维码功能
- 【最小费用可行流模板】
- 微信支付 php详解,PHP实现微信支付实战案例详解
- Navicat安装(图文教程)
- Hive中元数据表的关系和如何在元数据中删除表
- GMQ钱包积极打造并维护区块链健康生态的发展
- 帝国CMS二次开发对接第三方支付接口教程
- ecs云服务器操作系统选择
- Type-C扩展坞支持的手机类型
- 微信扫码小绿盒支持支付宝+微信收款教程
- 从大厂出来的几个产品朋友,现如今怎么样了?
- 将系统必备组件打包进安装文件(以vs15打包.net formwork 4.5为例)有点鸡肋
- hive的环境搭建,以及简单使用-01
- 如何取消excel密码_办公软件操作技巧020:如何给excel工作表设置密码
- 区块链概念股分析 | 远光软件大涨128%,区块链或成关键因素?
- 2.4_Date_Type_analysis数据类型分析
- c语言函数指针的理解与使用
- 深度学习训练(优化)参数的玄学解释
- Linux下日志分析--Linux日志
热门文章
- 【学习OpenCV】warpAffine函数实现图像旋转
- 如何轻松搭建一个在线wiki文档平台?
- 计算机开始菜单打不开是什么原因,win10开始菜单打不开怎么办啊
- 路由器VRF多个虚拟路由器测试
- 2021年全球CAN按键面板行业调研及趋势分析报告
- rust山洞造家坐标_魔兽世界怀旧服部落1-60任务流程攻略 任务怪坐标位置汇总
- css抄页面,如何照抄别人家的网页
- oracle 查看考试成绩,oracle认证考试成绩如何查询?
- 微信服务器带宽是多少?使用大带宽服务器有什么好处?
- 华中师大计算机专业陈鹏,考完就放假!这套华师真题,你能拿多少分