高斯模糊

简介: procedure Effect_GaussianBlur(Amount:integer;Picture:TBitmap); var BB:TBitmap; begin BB :=TBitmap.

procedure Effect_GaussianBlur(Amount:integer;Picture:TBitmap);

var BB:TBitmap;

begin

BB :=TBitmap.Create;

BB.PixelFormat :=pf24bit;

BB.Assign(Picture.Bitmap);

GaussianBlur(BB,Amount);

Picture.Bitmap.Assign(BB);

BB.Free;

end;

procedure GaussianBlur(var clip:TBitmap;Amount:integer);

var

i:integer;

begin

for i:=Amount downto 0 do

SplitBlur(clip,3);

end;

procedure SplitBlur(var clip:TBitmap;Amount:integer);

var

p0,p1,p2:PByteArray;

cx,x,y:integer;

Buf:array[0..3,0..2] of byte;

begin

if Amount=0 then Exit;

for y:=0 to clip.Height-1 do

begin

if y-Amount<0 then

p1:=clip.Scanline[y]

else

p1:=clip.Scanline[y-Amount];

if y+Amount<clip.Height then

p2:=clip.Scanline[y+Amount]

else

p2:=clip.Scanline[clip.Height-y]

for x:=0 to clip.Width-1 do

begin

if x-Amount<0 then cx:=x;

Buf[0,0]:=p1[cx*3];

Buf[0,1]:=p1[cx*3+1];

Buf[0,2]:=p1[cx*3+2];

Buf[1,0]:=p2[cx*3];

Buf[1,1]:=p2[cx*3+1];

Buf[1,2]:=p2[cx*3+2];

if x+Amount<clip.Width then

cx:=x+Amount

else

cx:=clip.Width-x;

Buf[2,0]:=p1[cx*3];

Buf[2,1]:=p1[cx*3+1];

Buf[2,2]:=p1[cx*3+2];

Buf[3,0]:=p1[cx*3];

Buf[3,1]:=p1[cx*3+1];

Buf[3,2]:=p1[cx*3+2];

p0[x*3+1]:=(Buf[0,1]+Buf[1,1]+Buf[2,1]+Buf[3,1]) shr 2;

p0[x*3+2]:=(Buf[0,2]+Buf[1,2]+Buf[2,2]+Buf[3,2]) shr 2;

end;

end;

end;

相关文章
|
8月前
|
监控 算法 新能源
模糊预测|RFIS与ANFIS模糊模型预测的比较(Matlab代码实现)
模糊预测|RFIS与ANFIS模糊模型预测的比较(Matlab代码实现)
|
11月前
|
机器学习/深度学习 传感器 算法
【图像分割】基于局部空间信息直方图模糊聚类FGFCM 实现图像图像分割附matlab代码
【图像分割】基于局部空间信息直方图模糊聚类FGFCM 实现图像图像分割附matlab代码
|
资源调度 计算机视觉
CV10 图像模糊(均值、高斯、中值、双边滤波)
当我们只想得到感兴趣的物体时,通过图像模糊,可以将那些尺寸和亮度较小的物体过滤掉,较大的物体则易于检测。除了降低噪声,这就是图像平滑(模糊)的另一个重要应用:减少噪点,突出ROI,以便目标提取。
227 0
|
机器学习/深度学习 传感器 算法
【边缘检测】基于模糊算法的图像边缘检测附matlab代码
【边缘检测】基于模糊算法的图像边缘检测附matlab代码
|
机器学习/深度学习 传感器 算法
【图像分割】基于超像素的快速模糊聚类算法(SFFCM) 实现彩色图像分割附matlab代码
【图像分割】基于超像素的快速模糊聚类算法(SFFCM) 实现彩色图像分割附matlab代码
# TODO.3.高斯双边滤波 (照片变清楚了)
# TODO.3.高斯双边滤波 (照片变清楚了)
45 0
# TODO.3.高斯双边滤波 (照片变清楚了)
均值滤波、高斯滤波、高斯双边滤波
均值滤波、高斯滤波、高斯双边滤波
96 0
均值滤波、高斯滤波、高斯双边滤波
|
机器学习/深度学习 资源调度 算法
【图像插值】基于稀疏拉普拉斯滤波器处理红绿蓝三种像素实现插值效果附matlab代码
【图像插值】基于稀疏拉普拉斯滤波器处理红绿蓝三种像素实现插值效果附matlab代码
|
算法 Java Serverless
Java实现高斯模糊和图像的空间卷积
Java实现高斯模糊和图像的空间卷积
227 0
Java实现高斯模糊和图像的空间卷积