ARM汇编中值滤波实验
其实就是 汇编的排序然后选出中位数
排序写的是最直接的冒泡排序,因为简单.
相应的C代码
r2=r0; while(r1<r0){ r1++;
r2=r2-;
r3=;
while(r3<r2){ if(sp[r3]>sp[r3+]){ //交换 }
r3++ } }
汇编代码:
AREA EXAMPLE,CODE,READONLY
ENTRY LDR SP,=0X40000000 ;ldr r4,=0x40000000;这才是开头
;SWAP
;ldr r5,[r4];从堆栈取数
;ldr r6,[r4,#] ;str r5,[r4,#];将寄存器里面的数放进堆栈
;str r6,[r4] ;ldr r5,[r4]
;ldr r6,[r4,#] ;R0,R2 INNITAIL MOV R2,R0 LOOP_1 CMP R1,R0;R1是0,R0是N
BGE LOOP_END;如果R1比R0大,结束
ADD R1,R1,#;R1++
SUB R2,R2,#;R2是需要比较的个数
MOV R3,#;R3是下一个循环的下标,初始化
LDR R4,=0X40000000;栈的开头
B LOOP_2 LOOP_2 CMP R3,R2;如果R3比R2大
BGE LOOP_1;结束
ADD R3,R3,#
LDR R5,[R4];将当前的两个数取出来
LDR R6,[R4,#]
ADD R4,R4,#
CMP R5,R6;如果左边比右边的大
BLS LOOP_2
SUB R4,R4,#
STR R5,[R4,#];交换
STR R6,[R4]
ADD R4,R4,#
B LOOP_2 LOOP_END
MOV R2,R0,LSR#; /
MOV R3,#
MUL R1,R2,R3;偏移量
LDR R1,[SP,R1];取中位数 END
ARM汇编中值滤波实验的更多相关文章
- 基于FPGA的中值滤波算法实现
在这一篇开篇之前,我需要解决一个问题,上一篇我们实现了基于FPGA的均值滤波算法的实现,最后的显示效果图上发现有一些黑白色的斑点,我以为是椒盐噪声,然后在做基于FPGA的中值滤波算法的实验时,我发现黑 ...
- 学习 opencv---(8)非线性滤波:中值滤波,双边滤波
正如我们上一篇文章中讲到的,线性滤波可以实现很多种不同的图像变换.然而非线性滤波,如中值滤波器和双边滤波器,有时可以达到更好的实现效果. 邻域算子的其他一些例子还有对 二值图像进行操作的形态学算子,用 ...
- Atitit 图像处理 平滑 也称 模糊, 归一化块滤波、高斯滤波、中值滤波、双边滤波)
Atitit 图像处理 平滑 也称 模糊, 归一化块滤波.高斯滤波.中值滤波.双边滤波) 是一项简单且使用频率很高的图像处理方法 用途 去噪 去雾 各种线性滤波器对图像进行平滑处理,相关OpenC ...
- opencv实现图像邻域均值滤波、中值滤波、高斯滤波
void CCVMFCView::OnBlurSmooth()//邻域均值滤波 { IplImage* in; in = workImg; IplImage* out = cvCreateImage( ...
- MATLAB灰度图、中值滤波图
x=imread(‘x.jpg’); x=rbg2gray(x); %转成灰度图像 k=medfilt2(x); %中值滤波,默认为3X3矩阵 figure, imshow(k); medfil ...
- 关于中值滤波算法,以及C语言实现(转)
源:关于中值滤波算法,以及C语言实现 1.什么是中值滤波? 中值滤波是对一个滑动窗口内的诸像素灰度值排序,用其中值代替窗口中心象素的原来灰度值,它是一种非线性的图像平滑法,它对脉冲干扰级椒盐噪声的抑制 ...
- 基于MATLAB的中值滤波均值滤波以及高斯滤波的实现
基于MATLAB的中值滤波均值滤波以及高斯滤波的实现 作者:lee神 1. 背景知识 中值滤波法是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值. 中值滤 ...
- 3D Slicer中文教程(七)—图像中值滤波
1.中值滤波概念 中值滤波是对一个滑动窗口内的诸像素灰度值排序,用其中值代替窗口中心象素的原来灰度值,它是一种非线性的图像平滑法,它对脉冲干扰级椒盐噪声的抑制效果好,在抑制随机噪声的同时能有效保护边缘 ...
- verilog实现中值滤波
前言 项目需要,想要实现算法中的其中一步即中值滤波,同时,因为图像处理部分中值滤波相对来说还是比较简单的,将中值滤波的硬件实现作为进入FPGA领域的第一次尝试.虽然说网上有较多关于中值滤波的文档,可是 ...
随机推荐
- 【pandas】pandas.Series.str.split()---字符串分割
原创博文,转载请注明出处! 本文代码的github地址 series中的元素均为字符串时,通过str.split可将字符串按指定的分隔符拆分成若干列的形式. 例子: 拆分以逗号为分隔符的字 ...
- ICCS 会议 Latex 压缩文件提交主要事项
cd papers/conf latex main... check that the are no error messages ...zip -r mypaper.zip * 说明:必须在Linu ...
- 跳转后全屏,兼容大部分浏览器JavaScript
<!DOCTYPE html> <html> <head> <title>测试</title> </head> <body ...
- Web应用中使用JavaMail发送邮件进行用户注册
现在很多的网站都提供有用户注册功能, 通常我们注册成功之后就会收到一封来自注册网站的邮件.邮件里面的内容可能包含了我们的注册的用户名和密码以及一个激活账户的超链接等信息.今天我们也来实现一个这样的功能 ...
- 算法导论进度帖startedby20131029
2013.10.29 今天开始啃难啃的算法导论,俗一点说,光阴似箭,剩下的时间已经不多了,所以开始好好奋进吧~ 第一章翻过去了,对附录中的数学基础再补看一遍,发现很多东西其实掌握的都很薄弱的,附录A的 ...
- PHP5.3、PHP5.4、PHP5.5、PHP5.6的新特性
1. PHP5.3中的新特性 1.1 支持命名空间(namespace) 毫无疑问,命名空间是PHP5.3所带来的最重要的新特性. 在PHP5.3中,可以用命名空间防止代码的冲突,命名空间的分隔符为 ...
- LeetCode 819. Most Common Word
原题链接在这里:https://leetcode.com/problems/most-common-word/description/ 题目: Given a paragraph and a list ...
- Python面试题(十一)
1.Python中list.tuple.dict.set有什么区别,主要应用在什么样的场景?并用for语句分别进行遍历 定义: list:链表,有序的项目, 通过索引进行查找,使用方括号”[]”; t ...
- apiman 一个apigateway
APIMAN 提供 API 管理的方法技术,结合一个 API 设计/配置层以及快速的运行时. 主要特性: 完全异步 丰富的管理层 容易嵌入 API 管理 参考资料 http://www.apiman. ...
- Opencv2.2 移植到am335x-y开发板
1.虚拟机上运行cmake-gui,报找不到文件,指示安装. 2.下载opencv2.2.0 http://opencv.org/downloads.html 3.cmake-gui,配置参考< ...