±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉÜpythonÊý×ÖͼÏñ´¦Àí,ͼÏñ¼òµ¥Â˲¨£¬Í¼ÎIJ¢Ã¯½éÉÜskimage¿âÖÐͨ¹ýfiltersÄ£¿é½øÐÐÂ˲¨²Ù×÷£¬Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔÓÚ²©¿ÍÔ°£¬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼¡¢ÍƼö¡£ |
|
¶ÔͼÏñ½øÐÐÂ˲¨£¬¿ÉÒÔÓÐÁ½ÖÖЧ¹û£ºÒ»ÖÖÊÇÆ½»¬Â˲¨£¬ÓÃÀ´ÒÖÖÆÔëÉù£»ÁíÒ»ÖÖÊÇ΢·ÖËã×Ó£¬¿ÉÒÔÓÃÀ´¼ì²â±ßÔµºÍÌØÕ÷ÌáÈ¡¡£
skimage¿âÖÐͨ¹ýfiltersÄ£¿é½øÐÐÂ˲¨²Ù×÷¡£
1¡¢sobelËã×Ó
sobelËã×Ó¿ÉÓÃÀ´¼ì²â±ßÔµ
º¯Êý¸ñʽΪ£ºskimage.filters.sobel(image, mask=None)
from skimage
import data,filters
import matplotlib.pyplot as plt
img = data.camera()
edges = filters.sobel(img)
plt.imshow(edges,plt.cm.gray) |

2¡¢robertsËã×Ó
robertsËã×ÓºÍsobelËã×ÓÒ»Ñù£¬ÓÃÓÚ¼ì²â±ßÔµ
µ÷ÓøñʽҲÊÇÒ»ÑùµÄ£º
edges = filters.roberts(img)
|
3¡¢scharrËã×Ó
¹¦ÄÜͬsobel£¬µ÷Óøñʽ£º
edges = filters.scharr(img)
|
4¡¢prewittËã×Ó
¹¦ÄÜͬsobel£¬µ÷Óøñʽ£º
edges = filters.prewitt(img)
|
5¡¢cannyËã×Ó
cannyËã×ÓÒ²ÊÇÓÃÓÚÌáÈ¡±ßÔµÌØÕ÷£¬µ«Ëü²»ÊÇ·ÅÔÚfiltersÄ£¿é£¬¶øÊÇ·ÅÔÚfeatureÄ£¿é
º¯Êý¸ñʽ£ºskimage.feature.canny(image£¬sigma=1.0)
¿ÉÒÔÐÞ¸ÄsigmaµÄÖµÀ´µ÷ÕûЧ¹û
from skimage
import data,filters,feature
import matplotlib.pyplot as plt
img = data.camera()
edges1 = feature.canny(img) #sigma=1
edges2 = feature.canny(img,sigma=3) #sigma=3
plt.figure('canny',figsize=(8,8))
plt.subplot(121)
plt.imshow(edges1,plt.cm.gray) plt.subplot(122)
plt.imshow(edges2,plt.cm.gray) plt.show() |

´Ó½á¹û¿ÉÒÔ¿´³ö£¬sigmaԽС£¬±ßÔµÏßÌõԽϸС¡£
6¡¢gaborÂ˲¨
gaborÂ˲¨¿ÉÓÃÀ´½øÐбßÔµ¼ì²âºÍÎÆÀíÌØÕ÷ÌáÈ¡¡£
º¯Êýµ÷Óøñʽ£ºskimage.filters.gabor_filter(image, frequency)
ͨ¹ýÐÞ¸ÄfrequencyÖµÀ´µ÷ÕûÂ˲¨Ð§¹û£¬·µ»ØÒ»¶Ô±ßÔµ½á¹û£¬Ò»¸öÊÇÓÃÕæÊµÂ˲¨ºËµÄÂ˲¨½á¹û£¬Ò»¸öÊÇÏëÏóµÄÂ˲¨ºËµÄÂ˲¨½á¹û¡£
from skimage
import data,filters
import matplotlib.pyplot as plt
img = data.camera()
filt_real, filt_imag = filters.gabor_filter(img,frequency=0.6)
plt.figure('gabor',figsize=(8,8))
plt.subplot(121)
plt.title('filt_real')
plt.imshow(filt_real,plt.cm.gray) plt.subplot(122)
plt.title('filt-imag')
plt.imshow(filt_imag,plt.cm.gray) plt.show() |

ÒÔÉÏΪfrequency=0.6µÄ½á¹ûͼ¡£

ÒÔÉÏΪfrequency=0.1µÄ½á¹ûͼ
7¡¢gaussianÂ˲¨
¶àάµÄÂ˲¨Æ÷£¬ÊÇÒ»ÖÖÆ½»¬Â˲¨£¬¿ÉÒÔÏû³ý¸ß˹ÔëÉù¡£
µ÷Óú¯ÊýΪ£ºskimage.filters.gaussian_filter(image, sigma)
ͨ¹ýµ÷½ÚsigmaµÄÖµÀ´µ÷ÕûÂ˲¨Ð§¹û
from skimage
import data,filters
import matplotlib.pyplot as plt
img = data.astronaut()
edges1 = filters.gaussian_filter(img,sigma=0.4)
#sigma=0.4
edges2 = filters.gaussian_filter(img,sigma=5)
#sigma=5
plt.figure('gaussian',figsize=(8,8))
plt.subplot(121)
plt.imshow(edges1,plt.cm.gray)
plt.subplot(122)
plt.imshow(edges2,plt.cm.gray)
plt.show() |

¿É¼ûsigmaÔ½´ó£¬¹ýÂ˺óµÄͼÏñԽģºý
8.median
ÖÐÖµÂ˲¨£¬Ò»ÖÖÆ½»¬Â˲¨£¬¿ÉÒÔÏû³ýÔëÉù¡£
ÐèÒªÓÃskimage.morphologyÄ£¿éÀ´ÉèÖÃÂ˲¨Æ÷µÄÐÎ×´¡£
from skimage
import data,filters
import matplotlib.pyplot as plt
from skimage.morphology import disk
img = data.camera()
edges1 = filters.median(img,disk(5))
edges2= filters.median(img,disk(9))
plt.figure('median',figsize=(8,8))
plt.subplot(121)
plt.imshow(edges1,plt.cm.gray)
plt.subplot(122)
plt.imshow(edges2,plt.cm.gray)
plt.show() |

´Ó½á¹û¿ÉÒÔ¿´³ö£¬Â˲¨Æ÷Ô½´ó£¬Í¼ÏñԽģºý¡£
9¡¢Ë®Æ½¡¢´¹Ö±±ßÔµ¼ì²â
ÉϱßËù¾ÙµÄÀý×Ó¶¼ÊǽøÐÐÈ«²¿±ßÔµ¼ì²â£¬ÓÐЩʱºòÎÒÃÇÖ»ÐèÒª¼ì²âˮƽ±ßÔµ£¬»ò´¹Ö±±ßÔµ£¬¾Í¿ÉÓÃÏÂÃæµÄ·½·¨¡£
ˮƽ±ßÔµ¼ì²â£ºsobel_h, prewitt_h, scharr_h
´¹Ö±±ßÔµ¼ì²â£º sobel_v, prewitt_v, scharr_v
from skimage
import data,filters
import matplotlib.pyplot as plt
img = data.camera()
edges1 = filters.sobel_h(img)
edges2 = filters.sobel_v(img)
plt.figure('sobel_v_h',figsize=(8,8))
plt.subplot(121)
plt.imshow(edges1,plt.cm.gray)
plt.subplot(122)
plt.imshow(edges2,plt.cm.gray)
plt.show() |

Éϱß×óͼΪ¼ì²â³öµÄˮƽ±ßÔµ£¬ÓÒͼΪ¼ì²â³öµÄ´¹Ö±±ßÔµ¡£
10¡¢½»²æ±ßÔµ¼ì²â
¿ÉʹÓÃRobertsµÄÊ®×Ö½»²æºËÀ´½øÐйýÂË£¬ÒÔ´ïµ½¼ì²â½»²æ±ßÔµµÄÄ¿µÄ¡£ÕâЩ½»²æ±ßԵʵ¼ÊÉÏÊÇÌݶÈÔÚij¸ö·½ÏòÉϵÄÒ»¸ö·ÖÁ¿¡£
ÆäÖÐÒ»¸öºË£º
0 1
-1 0
¶ÔÓ¦µÄº¯Êý£º
roberts_neg_diag(image£©
Àý£º
from skimage
import data,filters
import matplotlib.pyplot as plt
img =data.camera()
dst =filters.roberts_neg_diag(img)
plt.figure('filters',figsize=(8,8))
plt.subplot(121)
plt.title('origin image')
plt.imshow(img,plt.cm.gray) plt.subplot(122)
plt.title('filted image')
plt.imshow(dst,plt.cm.gray) |

ÁíÍâÒ»¸öºË£º
1 0
0 -1
¶ÔÓ¦º¯ÊýΪ£º
roberts_pos_diag(image£©
from skimage
import data,filters
import matplotlib.pyplot as plt
img =data.camera()
dst =filters.roberts_pos_diag(img)
plt.figure('filters',figsize=(8,8))
plt.subplot(121)
plt.title('origin image')
plt.imshow(img,plt.cm.gray)
plt.subplot(122)
plt.title('filted image')
plt.imshow(dst,plt.cm.gray) |

|