Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
pythonÊý×ÖͼÏñ´¦ÀíÖ®¸ß¼¶ÐÎ̬ѧ´¦Àí
 
×÷Õߣº²»ÑÔ
  4168  次浏览      28
 2020-9-21 
 
±à¼­ÍƼö:
ÕâÆªÎÄÕÂÖ÷Òª½éÉÜÁËpythonÊý×ÖͼÏñ´¦ÀíÖ®¸ß¼¶ÐÎ̬ѧ´¦Àí , Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔÓÚÖÐÎÄÍø£¬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼­£¬ÍƼö¡£

ÐÎ̬ѧ´¦Àí£¬³ýÁË×î»ù±¾µÄÅòÕÍ¡¢¸¯Ê´¡¢¿ª/±ÕÔËËã¡¢ºÚ/°×ñ´¦ÀíÍ⣬»¹ÓÐһЩ¸ü¸ß¼¶µÄÔËÓã¬Èç͹°ü£¬Á¬Í¨ÇøÓò±ê¼Ç£¬É¾³ýС¿éÇøÓòµÈ¡£

1¡¢Í¹°ü

͹°üÊÇÖ¸Ò»¸ö͹¶à±ßÐΣ¬Õâ¸ö͹¶à±ßÐν«Í¼Æ¬ÖÐËùÓеİ×É«ÏñËØµã¶¼°üº¬ÔÚÄÚ¡£

º¯ÊýΪ£º

skimage.morphology.convex_hull_image(image)

ÊäÈëΪ¶þֵͼÏñ£¬Êä³öÒ»¸öÂß¼­¶þֵͼÏñ¡£ÔÚ͹°üÄڵĵãΪTrue, ·ñÔòΪFalse

Àý£º

import matplotlib.pyplot as plt
from skimage import data,color,morphology

#Éú³É¶þÖµ²âÊÔͼÏñ
img=color.rgb2gray(data.horse())
img=(img<0.5)*1

chull = morphology.convex_hull_image(img)

#»æÖÆÂÖÀª
fig, axes = plt.subplots(1,2,figsize=(8,8))
ax0, ax1= axes.ravel()
ax0.imshow(img,plt.cm.gray)
ax0.set_title('original image')

ax1.imshow(chull,plt.cm.gray)
ax1.set_title('convex_hull image')

convex_hull_image()Êǽ«Í¼Æ¬ÖеÄËùÓÐÄ¿±ê¿´×÷Ò»¸öÕûÌ壬Òò´Ë¼ÆËã³öÀ´Ö»ÓÐÒ»¸ö×îС͹¶à±ßÐΡ£Èç¹ûͼÖÐÓжà¸öÄ¿±êÎïÌ壬ÿһ¸öÎïÌåÐèÒª¼ÆËãÒ»¸ö×îС͹¶à±ßÐΣ¬ÔòÐèҪʹÓÃconvex_hull_object£¨£©º¯Êý¡£

º¯Êý¸ñʽ£ºskimage.morphology.convex_hull_object(image,neighbors=8)

ÊäÈë²ÎÊýimageÊÇÒ»¸ö¶þֵͼÏñ£¬neighbors±íʾÊDzÉÓÃ4Á¬Í¨»¹ÊÇ8Á¬Í¨£¬Ä¬ÈÏΪ8Á¬Í¨¡£

Àý£º

import matplotlib.pyplot as plt
from skimage import data,color,morphology,feature

#Éú³É¶þÖµ²âÊÔͼÏñ
img=color.rgb2gray(data.coins())
#¼ì²âcanny±ßÔµ,µÃµ½¶þֵͼƬ
edgs=feature.canny(img, sigma=3, low_threshold=10, high_threshold=50)

chull = morphology.convex_hull_object(edgs)

#»æÖÆÂÖÀª
fig, axes = plt.subplots(1,2,figsize=(8,8))
ax0, ax1= axes.ravel()
ax0.imshow(edgs,plt.cm.gray)
ax0.set_title('many objects')
ax1.imshow(chull,plt.cm.gray)
ax1.set_title('convex_hull image')
plt.show()

2¡¢Á¬Í¨ÇøÓò±ê¼Ç

ÔÚ¶þֵͼÏñÖУ¬Èç¹ûÁ½¸öÏñËØµãÏàÁÚÇÒÖµÏàͬ£¨Í¬Îª0»òͬΪ1£©£¬ÄÇô¾ÍÈÏΪÕâÁ½¸öÏñËØµãÔÚÒ»¸öÏ໥Á¬Í¨µÄÇøÓòÄÚ¡£¶øÍ¬Ò»¸öÁ¬Í¨ÇøÓòµÄËùÓÐÏñËØµã£¬¶¼ÓÃͬһ¸öÊýÖµÀ´½øÐбê¼Ç£¬Õâ¸ö¹ý³Ì¾Í½ÐÁ¬Í¨ÇøÓò±ê¼Ç¡£ÔÚÅжÏÁ½¸öÏñËØÊÇ·ñÏàÁÚʱ£¬ÎÒÃÇͨ³£²ÉÓÃ4Á¬Í¨»ò8Á¬Í¨Åжϡ£ÔÚͼÏñÖУ¬×îСµÄµ¥Î»ÊÇÏñËØ£¬Ã¿¸öÏñËØÖÜΧÓÐ8¸öÁÚ½ÓÏñËØ£¬³£¼ûµÄÁÚ½Ó¹ØÏµÓÐ2ÖÖ£º4ÁÚ½ÓÓë8ÁÚ½Ó¡£4ÁÚ½ÓÒ»¹²4¸öµã£¬¼´ÉÏÏÂ×óÓÒ£¬ÈçÏÂ×óͼËùʾ¡£8ÁڽӵĵãÒ»¹²ÓÐ8¸ö£¬°üÀ¨Á˶ԽÇÏßλÖõĵ㣬ÈçÏÂÓÒͼËùʾ¡£

ÔÚskimage°üÖУ¬ÎÒÃDzÉÓÃmeasure×ÓÄ£¿éϵÄlabel£¨£©º¯ÊýÀ´ÊµÏÖÁ¬Í¨ÇøÓò±ê¼Ç¡£

º¯Êý¸ñʽ£º

skimage.measure.label£¨image,connectivity=None)

²ÎÊýÖеÄimage±íʾÐèÒª´¦ÀíµÄ¶þֵͼÏñ£¬connectivity±íʾÁ¬½ÓµÄģʽ£¬1´ú±í4ÁÚ½Ó£¬2´ú±í8ÁÚ½Ó¡£

Êä³öÒ»¸ö±ê¼ÇÊý×飨labels), ´Ó0¿ªÊ¼±ê¼Ç¡£

import numpy as np
import scipy.ndimage as ndi
from skimage import measure,color
import matplotlib.pyplot as plt

#±àдһ¸öº¯ÊýÀ´Éú³Éԭʼ¶þֵͼÏñ
def microstructure(l=256):
n = 5
x, y = np.ogrid[0:l, 0:l] #Éú³ÉÍøÂç
mask = np.zeros((l, l))
generator = np.random.RandomState(1) #Ëæ»úÊýÖÖ×Ó
points = l * generator.rand(2, n**2)
mask[(points[0]).astype(np.int), (points[1]).astype(np.int)] = 1
mask = ndi.gaussian_filter(mask, sigma=l/(4.*n)) #¸ß˹Â˲¨
return mask > mask.mean()

data = microstructure(l=128)*1 #Éú³É²âÊÔͼƬ

labels=measure.label(data,connectivity=2) #8Á¬Í¨ÇøÓò±ê¼Ç
dst=color.label2rgb(labels) #¸ù¾Ý²»Í¬µÄ±ê¼ÇÏÔʾ²»Í¬µÄÑÕÉ«
print('regions number:',labels.max()+1) #ÏÔʾÁ¬Í¨ÇøÓò¿éÊý(´Ó0¿ªÊ¼±ê¼Ç)

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(8, 4))
ax1.imshow(data, plt.cm.gray, interpolation='nearest')
ax1.axis('off')
ax2.imshow(dst,interpolation='nearest')
ax2.axis('off')

fig.tight_layout()
plt.show()

ÔÚ´úÂëÖУ¬ÓÐЩµØ·½³ËÒÔ1£¬Ôò¿ÉÒÔ½«boolÊý×é¿ìËÙµØ×ª»»ÎªintÊý×é¡£

½á¹ûÈçͼ£ºÓÐ10¸öÁ¬Í¨µÄÇøÓò£¬±ê¼ÇΪ0-9

Èç¹ûÏë·Ö±ð¶Ôÿһ¸öÁ¬Í¨ÇøÓò½øÐвÙ×÷£¬±ÈÈç¼ÆËãÃæ»ý¡¢Íâ½Ó¾ØÐΡ¢Í¹°üÃæ»ýµÈ£¬ÔòÐèÒªµ÷ÓÃmeasure×ÓÄ£¿éµÄregionprops£¨£©º¯Êý¡£¸Ãº¯Êý¸ñʽΪ£º

skimage.measure.regionprops(label_image)

·µ»ØËùÓÐÁ¬Í¨Çø¿éµÄÊôÐÔÁÐ±í£¬³£ÓõÄÊôÐÔÁбíÈçÏÂ±í£º

ÓÐЩʱºò£¬ÎÒÃÇÖ»ÐèҪһЩ´ó¿éÇøÓò£¬ÄÇЩÁãÉ¢µÄ¡¢Ð¡¿éµÄÇøÓò£¬ÎÒÃǾÍÐèҪɾ³ýµô£¬Ôò¿ÉÒÔʹÓÃmorphology×ÓÄ£¿éµÄremove_small_objects£¨)º¯Êý¡£

º¯Êý¸ñʽ£ºskimage.morphology.remove_small_objects(ar,min_size=64,connectivity=1,in_place=False)

²ÎÊý£º

ar: ´ý²Ù×÷µÄboolÐÍÊý×é¡£

min_size: ×îСÁ¬Í¨ÇøÓò³ß´ç£¬Ð¡ÓڸóߴçµÄ¶¼½«±»É¾³ý¡£Ä¬ÈÏΪ64.

connectivity: ÁÚ½Óģʽ£¬1±íʾ4ÁÚ½Ó£¬2±íʾ8ÁÚ½Ó

in_place: boolÐÍÖµ£¬Èç¹ûΪTrue,±íʾֱ½ÓÔÚÊäÈëͼÏñÖÐɾ³ýС¿éÇøÓò£¬·ñÔò½øÐи´ÖƺóÔÙɾ³ý¡£Ä¬ÈÏΪFalse.

·µ»ØÉ¾³ýÁËС¿éÇøÓòµÄ¶þֵͼÏñ¡£

import numpy as np
import scipy.ndimage as ndi
from skimage import morphology
import matplotlib.pyplot as plt

#±àдһ¸öº¯ÊýÀ´Éú³Éԭʼ¶þֵͼÏñ
def microstructure(l=256):
n = 5
x, y = np.ogrid[0:l, 0:l] #Éú³ÉÍøÂç
mask = np.zeros((l, l))
generator = np.random.RandomState(1) #Ëæ»úÊýÖÖ×Ó
points = l * generator.rand(2, n**2)
mask[(points[0]).astype(np.int), (points[1]).astype(np.int)] = 1
mask = ndi.gaussian_filter(mask, sigma=l/(4.*n)) #¸ß˹Â˲¨
return mask > mask.mean()
data = microstructure(l=128) #Éú³É²âÊÔͼƬ

dst=morphology.remove_small_objects(data,min_size=300,connectivity=1)

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(8, 4))

ax1.imshow(data, plt.cm.gray, interpolation='nearest')
ax2.imshow(dst,plt.cm.gray,interpolation='nearest')

fig.tight_layout()
plt.show()

ÔÚ´ËÀýÖУ¬ÎÒÃǽ«Ãæ»ýСÓÚ300µÄС¿éÇøÓòɾ³ý£¨ÓÉ1±äΪ0£©£¬½á¹ûÈçÏÂͼ£º

4¡¢×ÛºÏʾÀý£ºãÐÖµ·Ö¸î+±ÕÔËËã+Á¬Í¨ÇøÓò±ê¼Ç+ɾ³ýÐ¡Çø¿é+·ÖÉ«ÏÔʾ

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
from skimage import data,filter,segmentation,measure,morphology,color

#¼ÓÔØ²¢²Ã¼ôÓ²±ÒͼƬ
image = data.coins()[50:-50, 50:-50]

thresh =filter.threshold_otsu(image) #ãÐÖµ·Ö¸î
bw =morphology.closing(image > thresh, morphology.square(3)) #±ÕÔËËã

cleared = bw.copy() #¸´ÖÆ
segmentation.clear_border(cleared) #Çå³ýÓë±ß½çÏàÁ¬µÄÄ¿±êÎï

label_image =measure.label(cleared) #Á¬Í¨ÇøÓò±ê¼Ç
borders = np.logical_xor(bw, cleared) #Òì»ò
label_image[borders] = -1
image_label_overlay =color.label2rgb(label_image, image=image) #²»Í¬±ê¼ÇÓò»Í¬ÑÕÉ«ÏÔʾ

fig,(ax0,ax1)= plt.subplots(1,2, figsize=(8, 6))
ax0.imshow(cleared,plt.cm.gray)
ax1.imshow(image_label_overlay

for region in measure.regionprops(label_image): #Ñ­»·µÃµ½Ã¿Ò»¸öÁ¬Í¨ÇøÓòÊôÐÔ¼¯

#ºöÂÔÐ¡ÇøÓò
if region.area < 100:
continue

#»æÖÆÍâ°ü¾ØÐÎ
minr, minc, maxr, maxc = region.bbox
rect = mpatches.Rectangle((minc, minr), maxc - minc, maxr - minr,
fill=False, edgecolor='red', linewidth=2)
ax1.add_patch(rect)
fig.tight_layout()
plt.show()

 
   
4168 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

ÊÖ»úÈí¼þ²âÊÔÓÃÀýÉè¼ÆÊµ¼ù
ÊÖ»ú¿Í»§¶ËUI²âÊÔ·ÖÎö
iPhoneÏûÏ¢ÍÆËÍ»úÖÆÊµÏÖÓë̽ÌÖ
AndroidÊÖ»ú¿ª·¢£¨Ò»£©
Ïà¹ØÎĵµ

Android_UI¹Ù·½Éè¼Æ½Ì³Ì
ÊÖ»ú¿ª·¢Æ½Ì¨½éÉÜ
androidÅÄÕÕ¼°ÉÏ´«¹¦ÄÜ
Android½²ÒåÖÇÄÜÊÖ»ú¿ª·¢
Ïà¹Ø¿Î³Ì

Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò
Androidϵͳ¿ª·¢
AndroidÓ¦Óÿª·¢
ÊÖ»úÈí¼þ²âÊÔ
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]
 
×îÐÂÎÄÕÂ
¼òÊöMatplotlib
PythonÈýά»æÍ¼--Matplotlib
PythonÊý¾ÝÇåϴʵ¼ù
PyTorchʵսָÄÏ
PythonÅÀ³æÓëÊý¾Ý¿ÉÊÓ»¯
×îпγÌ
PythonÓ¦Óÿª·¢×î¼Ñʵ¼ù
Python+Êý¾Ý·ÖÎö+tensorflow
Python ±à³Ì·½·¨ºÍÓ¦Óÿª·¢
È˹¤ÖÇÄÜ+Python£«´óÊý¾Ý
Python¼°Êý¾Ý·ÖÎö
³É¹¦°¸Àý
ijͨÐÅÉ豸ÆóÒµ PythonÊý¾Ý·ÖÎöÓëÍÚ¾ò
Ä³ÒøÐÐ È˹¤ÖÇÄÜ+Python+´óÊý¾Ý
ijÁìÏÈÊý×ÖµØÍ¼ÌṩÉÌ PythonÊý¾Ý·ÖÎöÓë»úÆ÷ѧϰ
±±¾© Python¼°Êý¾Ý·ÖÎö
ij½ðÈÚ¹«Ë¾ Python±à³Ì·½·¨Óëʵ¼ùÅàѵ