数学建模社区-数学中国

标题: 我用java实现的图像边缘提取(高斯拉普拉斯算子)附源码 [打印本页]

作者: wangzheng3056    时间: 2013-8-1 10:44
标题: 我用java实现的图像边缘提取(高斯拉普拉斯算子)附源码
图像识别.rar (6.9 KB, 下载次数: 167)   o3 j( Q1 ~: T! P/ E$ j' u: _
高斯拉普拉斯算子
7 }0 W7 C+ E0 R  H3 W( M! W! X       利用拉普拉斯算子求卷积过程恰好是边缘提取的过程。过程保留了如上所述的两种边界。但是边缘提取过程恰好是一个将图像锐化的一个过程,图像中的噪声也会被放大,大大影响了处理后基于像素对比的效果。因此引入了高斯算子,先将图像变平滑,消除噪声,再提取边界,就会达到比较理想的效果。
: f  W3 l/ M3 \. w0 R1 y3 O" R) U如下矩阵即为高斯拉普拉斯算子
9 T+ F: S" J' h; d& B% `1 z; y2 X-2   -4   -4   -4   -2
1 @# r, c# g# w( Z/ Z: \-4    0   8    0   -49 u. n# p6 h" i: `9 s. V6 f
-4    8   24   8   -4
) Y' a3 D* p( n) p-4    0   8    0   -4
% z1 X$ u+ ~  ?  [6 H-2   -4   -4   -4   -27 }- L$ _2 |* U3 Z! z+ v
1 b9 G2 D( ~# B8 y" V
基于高斯拉普拉斯算子边缘提取的实现; s3 @+ E) ~! k! U; j+ }
                  3 q; N- `3 ], x
                                                                        
% H$ k' [* w6 A" V4 [; D/ X        1        2        3        4        5                                4 q% Q4 O, C3 m( h. c9 h, E5 K
        6        7        8        9        10                                
, Q: {" H7 A: I$ C        11        12        13        14        15                                
$ G/ q+ u, {2 D# L( l2 @        16        17        18        19        20                                  t! e5 h/ G0 \5 r2 B1 V
        21        22        23        24        X                                ! N: U- `/ Y1 y8 C  c! _. I+ j- k8 ]
                                                                        
& Q- i. a; Y5 [+ \4 Q* m2 O                                                                        
( Q; {% w5 U( A                                                                        
9 |% y* p2 w9 T8 Z  r1 a                                                                        2 F2 d% S5 @# ^+ K9 ~+ v" ?. o+ B
X=| (-2*1   +  -4*2   +  -4*3  +   -4*4  +  -2*5 +  * J" i$ Y' I# X% n0 m  ]4 w
   -4*6   +   0*7   +   8*8  +   0*9  +  -4*10++ l7 s: m( e6 q. X0 p3 |
-4*11  +   8*12  +  24*13 +   8*14  +  -4*15+3 ?: q. P9 a; k! k2 T: E
-4*16  +   0*17  +   8*18 +   0*19  +  -4*20+ p! d" _: L6 f+ p) |; H+ Y( y
-2*21  +   -4*22  +  -4*23 +  -4*24  +  -2*X)*0.25 |1 o$ s. ~( l6 k# B4 D& h
公式上面矩阵中的X在处理后的值等于表中编号的数据与高斯拉普拉斯算子矩阵对位相乘之和,再乘以 0.25,再取绝对值(如上式)。如果该值大于255,则设该值为255,如果没有超过255则设置为原值。如上过程可以描述为:处理后的像素点灰度值等于它向上4行向左4列包含的25个像素点灰度值与算子求卷积的结果。这样做会发现高斯拉普拉斯算子中会有横向4行纵向4列像素点没有参与处理。如下图即为该算法处理图像效果。
" ^1 n+ B0 k' S) L2 T  A8 G clip_image002.jpg `{V]KBI(]CYZ5WDW8Z{4RVL.jpg
. L: A7 w* |$ {) {/ f$ x9 d. [( k  k: U& v5 v" D0 L  `

* |' v' E, s' N1 N高斯拉普拉斯算子对基于像素点差异对比方法的可行性研究
2 p$ h0 s3 k: I: r; `, c  Q8 R LI2(84P1%L2BTR`LW%ODK]O.jpg   表76 @' @/ c8 m: V' d/ r6 j
如上表 7所示,表中标号的区域的灰度值都不为零,未标号区域的灰度值都为零。现实中的图像在图片中都是以二维图像形式显示的。二维图像可以抽象为点、线、面三种形式。
( c% i# M) S1 @* {$ [% J+ c表 7 中的标号为1的区域,进行第3.1.3节中所述的处理后,它周围会有24个像素点的值由零变为非零的数值。假设与另一幅所有的像素点的灰度值都为零的图片对比,则两幅图片中的差异点个数会增多。
& m! C3 M+ T" _0 H( T8 `表 7中标号为 2的区域,进行第3.1.3节中所述的处理后,会与1区域的效果类似。假设与另一幅所有的像素点灰度值都为零的图片对比,则两幅图片中的差异点个数会增多。0 b. }/ {2 |- S
表 7 中标号为3 的区域,进行完第3.1.3节中所述的处理后,结果类似于表 8 所示,边缘的灰度值不为零,而中心的灰度值变为零。与另一幅所有的像素点灰度值都为零的图片对比,如果中心区域足够大,那么差异点个数将减少。
- X3 r( Q- Z6 z' A: ?* ]2 _. }二维的图像都是由点、线、面组成。图像在处理完以后差异点数是不可预测的,所以高斯拉普拉斯算子不适用基于像素的图像差异对比方法。在图像差异对比中不使用该方法。
; y* p0 Y. C; t7 B! J1 @. V: D+ F! s; `; v3 c! @" e5 ]7 V
{_I@Z)Q)%ODRK(_[`57TFOI.jpg 表8
1 a& F/ B8 F5 t( W# C% M' ^3 H8 E

" e0 z" r$ y9 E6 i8 a' d+ N: ^, C
8 W1 u! f1 y1 @* X源码使用方法:
/ S- X' M; D( Y% t* v2 V2 C       把源码导入eclipse中即可,大家可以看源代码自己更改一下文件的路径,测试自己的图片。
  z' C0 L! X7 A       几年前美赛出过一道图像处理题,估计今年可能会出一道吧。希望大家能用到并提前准备
$ E# F: X9 K! Q8 r      
作者: 百年孤独    时间: 2013-8-1 11:24
好厉害的说!!  _5 S9 p9 n- C9 t8 ?9 L2 m2 x0 p# U
顶起!2 E0 G+ Z& c/ _. Z0 l4 K

作者: wangzheng3056    时间: 2013-9-13 10:15
之前预测到会出图像处理题,果然命中,虽然题目不同但是心里很激动
作者: wangzheng3056    时间: 2013-9-13 10:16
大家快来看看吧
作者: aoqi    时间: 2013-9-13 11:06
好顶赞!高大上!                  
作者: 我爱照镜子    时间: 2013-9-13 15:37
楼主好强~!
作者: 2682443898    时间: 2013-9-13 20:41
感谢楼主啊, 大神啊
作者: sdccumcm    时间: 2013-9-13 23:02
哇                  
作者: sdccumcm    时间: 2013-9-13 23:02
哇                  
作者: honghu012    时间: 2013-9-14 09:53
wangzheng3056 发表于 2013-9-13 10:16
# ]5 @4 D8 k5 ^" ^/ n% p大家快来看看吧

( g7 T8 q, u0 M请问楼主,我们提取边缘后,面对200+张图片,用什么算法才能最快找出配对的,用穷举法找实在是太慢了
作者: haoxufei    时间: 2013-9-14 14:56
,...........................................
0 \% R: P1 i+ m( [. a3 y0 R1 m# F2 ?

作者: clarkCH    时间: 2013-9-16 11:03
楼主好强!!~~~
作者: 岳飞金枪    时间: 2013-9-26 12:20
好强,有matlab程序的么?
作者: wangzheng3056    时间: 2013-9-26 13:54
岳飞金枪 发表于 2013-9-26 12:20 * ]6 ~" t4 z5 y* J8 e, ~
好强,有matlab程序的么?
. v1 s; \2 y" @; j! \3 s, ^
matlab有直接写好的, 这个是底层的算法,更容易学到算子理论
作者: charge0411    时间: 2013-9-26 17:25
honghu012 发表于 2013-9-14 09:53 / l& {; P3 @5 L9 ?! [8 t0 b
请问楼主,我们提取边缘后,面对200+张图片,用什么算法才能最快找出配对的,用穷举法找实在是太慢了

3 _7 V7 h+ ]+ }* K( D6 _我觉得应该是先用聚类分析
作者: 123456789200123    时间: 2013-9-27 10:45

作者: 蓝枫心叶    时间: 2013-9-29 22:33
诶,当时没发现,呜呜~
作者: ygnntpg    时间: 2013-10-3 09:14
哼(ˉ(∞)ˉ)唧
作者: 1003914035    时间: 2013-10-3 13:34
有用,楼主讲得真好!顶!!!以后也要多学习这方面的知识
作者: 闲人自适    时间: 2013-10-7 15:48
在这次的国赛中导入图像无须处理都是255以下的啊,边缘提取只需要你取矩阵的一列或者一行不就行了么,关键的东西是边缘匹配问题,图片拼接需要确定一个算法来核对是否为相邻图片
作者: hengke    时间: 2013-11-8 15:02
好崇拜楼主!大学数学没学好!
作者: absdswor    时间: 2013-11-21 16:13
\(马o韦)/
作者: 陌上,烟雨遥    时间: 2013-11-29 09:42
楼主好厉害啊
作者: ㊣天亮    时间: 2013-12-1 21:02
好东西,顶一个
作者: 猪军包子    时间: 2013-12-7 10:07
感谢楼主分享资源!
作者: 猪军包子    时间: 2013-12-7 10:08
代码简单易懂,非常有效!
作者: 猪军包子    时间: 2013-12-7 16:17
感谢分享!!非常有用 ~~
作者: pig不睡    时间: 2013-12-18 19:04
虽然国赛我做的是A题,但还是觉得楼主好厉害,顶!!
作者: 棱箬冰泷    时间: 2013-12-28 22:25
mark一下~将来学习!
作者: hackerblue    时间: 2013-12-30 21:07
感谢楼主啊, 真心好资源
作者: 夸父&奔跑    时间: 2014-1-30 08:54
好厉害的说!!9
作者: 夸父&奔跑    时间: 2014-1-30 08:54
好厉害的说!!9
作者: 晴璟123    时间: 2014-2-3 22:49

$ u- g& c, A/ j8 o4 W' S3 |: }  v哇哦噢噢噢噢,真的不错了,谢谢!
作者: 坠子    时间: 2014-2-6 11:11
谢谢大家哈
作者: mutouzhuzhu    时间: 2015-9-7 12:45
好顶赞!高大上!      
/ T4 [; L+ t# H5 U
作者: tmepr    时间: 2016-4-26 13:06
高斯拉普拉斯算子)
2 {& m1 l, f8 q" r. P! S
作者: quan1230123    时间: 2016-5-17 12:52
下来看一下,谢谢( K8 m% U) H1 k$ C

作者: pigzee    时间: 2016-6-14 10:31
哈哈,终于可以留言了,幸福啊!
& P" R3 q! b6 i9 z: P
作者: pigzee69    时间: 2016-6-14 10:44
必须顶一顶!为了算子必须的* U1 T6 P9 X3 O

作者: pigzee69    时间: 2016-6-14 10:44
发两次,体力值变吗?
7 ~0 b9 M& u; L& S& L2 _8 N
作者: pigzee69    时间: 2016-6-14 10:45
哈哈,变,那真是太好了。哇哈哈哈
' D" H; s4 t' q$ ]
作者: hongyingaaa    时间: 2017-10-9 11:01
谢谢楼主的分享,好东西啊,值得慢慢去学习。以后一定多多跟你请教
1 {4 e( e+ x& F7 T: b4 {- ~
作者: 时光溢彩    时间: 2018-3-13 16:57
根本就不是   还要钱
7 a6 `& r9 \2 g/ v
作者: 512771131    时间: 2018-5-7 14:18
厉害,学习了,虽然看不懂。。。。
: B5 T, ?  D2 m( W. g. R5 i2 C" p
作者: Pppeng    时间: 2018-5-25 22:27
这不是今年的网络挑战赛用到的么。。
2 q3 B+ O9 }$ r
作者: fannyYang    时间: 2018-9-3 20:36
赞,厉害厉害~+ l  S1 R+ B2 I" ?$ v





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5