Delphi图像处理
图像的中值滤波,就是在以某一像素为中心的n阶像素矩阵中,找出R、G、B各分量的中间值来分别替代该像素的RGB值,从而达到对图像噪声滤波的目的。这里的中间值并非像素矩阵R、G、B各分量的的算术平均值,而是像素矩阵R、G、B各分量排序后的中位数值。
下面是Delphi图像中值滤波的实现代码:
过程定义:
// 中值滤波。Size应为奇数
procedure ImageMedianValues(Data: TImageData; Size: LongWord);
实现代码:
procedure ImageMedianValues(Data: TImageData; Size: LongWord);
var
matrixOffset, srcOffset, dstOffset: LongWord;
Width, Height: LongWord;
mSize, Count: LongWord;
src: TImageData;
Top, Last, Median: PLongWord;
Colors: array of LongWord;
procedure AssortValue;
asm
mov ah, [esi]
mov al, [esi + 4]
mov dl, [esi + 8]
cmp ah, al
jae @@1
xchg ah, al
@@1:
cmp ah, dl
jae @@2
xchg ah, dl
@@2:
cmp al, dl
jbe @@3
xchg al, dl
@@3:
mov [edi], ah
mov [edi + 4], dl
mov [edi + 8], al
inc esi
inc edi
end;
procedure GetValue;
asm
mov ah, [esi]
mov dh, [esi + 4]
mov dl, [esi + 16]
mov al, [esi + 8]
cmp ah, [esi + 12]
jbe @@1
mov ah, [esi + 12]
@@1:
cmp ah, [esi + 24]
jbe @@2
mov ah, [esi + 24]
@@2:
cmp dh, dl
jae @@3
xchg dh, dl
@@3:
cmp dh, [esi + 28]
jae @@4
xchg dh, [esi + 28]
@@4:
cmp dl, [esi + 28]
jae @@5
mov dl, [esi + 28]
@@5:
cmp al, [esi + 20]
jae @@6
mov al, [esi + 20]
@@6:
cmp al, [esi + 32]
jae @@7
mov al, [esi + 32]
@@7:
cmp ah, al
jae @@8
xchg al, ah
@@8:
cmp ah, dl
jae @@9
xchg ah, dl
@@9:
cmp al, dl
jae @@10
mov al, dl
@@10:
mov
相关文档:
WebBrowser组件和MSHTML 在Delphi中的使用
由于项目需要,近来研究了一下WebBrowser组件和MSHTML 在Delphi中的使用,整理了一下这段时间研究的结果,写下来一是方便大家查阅,二也可以加深我自己的记忆.希望能对大家有所帮助… …,同时,如果有更好的处理方式或者我没有提到的问题,请大家也告诉我哦, 咱们一 ......
delphi全局变量的定义与赋值主要有下面几种方法:
1.
全局变量的初始化
在最后结束的end.之前,增加initialization关键字,然后加入对全局变量的初始化,这样就可以初始化全局变量了.不论在interface还是在implementation部分的全部变量,都可以这么来初始化
//省略前面的interface, uses, type.
var
i: Integer;
......
第一章 DELPHI的原子世界
第二章 DELPHI与WIN32时空
第三章 多线程
第四章 接口
第五章 包
第六章 事件与消息
第七章 组织你的模块
第八章 探索数据库
第九章 多层体系结构
第十章 操作界面与操作逻辑
第十一章 面向对象数据库基础
第三章&n ......
设置图像关键颜色,使图像的某种或某个范围的颜色成为透明色,是图片合成、动画显示中经常用的图像处理手段。下面是实现代码:
过程定义:
// 设置色键(透明范围)。colorLow 低色键值; colorHigh 高色键值
// 当像素A、R、G、B值同时大于等于colorLow和小于等于colorHigh时为透明色
procedu ......