本文共 2538 字,大约阅读时间需要 8 分钟。
????????????????????????????????????????????????????????????????
?????????????????????????????????????????????????????????????????????????????????????????
????????????????????
?Python??????scikit-image????????????????????
from skimage.io import imreadfrom skimage.color import rgb2grayfrom skimage.feature import blob_dog, blob_log, blob_dohimport matplotlib.pyplot as pltimport numpy as np# ????????????im_bw = rgb2gray(imread('your_image.png'))# LoG??blobs_log = blob_log(im_bw, max_sigma=30, num_sigma=10, threshold=0.1)blobs_log[:, 2] = blobs_log[:, 2] * np.sqrt(2) # ???# DoG??blobs_dog = blob_dog(im_bw, max_sigma=30, threshold=0.1)blobs_dog[:, 2] = blobs_dog[:, 2] * np.sqrt(2)# DoH??blobs_doh = blob_doh(im_bw, max_sigma=30, threshold=0.01)# ??????plt.figure(figsize=(9, 3))for blob in [blobs_log, blobs_dog, blobs_doh]: y, x, r = blob plt.imshow(im_bw, interpolation='nearest') plt.circle((x, y), r, color='yellow', linewidth=2, fill=False)plt.tight_layout()plt.show() ??????????????????????????????????????????????????????????????????????????
?????????????????????????????????????????????????????????
from skimage import dataimport numpy as npdef multi_dilation(im, num): for _ in range(num): im = np.dilation(im, np.ones((3, 3))) return imdef multi_erosion(im, num): for _ in range(num): im = np.erosion(im, np.ones((3, 3))) return im# ????im_bw = data.hawksbury() # ????im_cleaned = multi_erosion(multi_dilation(im_bw, 5), 5)plt.imshow(im_cleaned)plt.show()
??skimage??label?region_properties?????????????????????
from skimage import dataimport numpy as npfrom skimage.segmentation import regionprops# ????im_bw = data.hawksbury()label_im = data.blobs(im_bw)plt.imshow(label_im, alpha=0.5)plt.show()# ??????props = regionprops(label_im)print(props[0].area) # ??????????
??regionprops??????????
?????????????????????????
????????????????????????????
?????????????????????????????????????????????????????????????????????????????????????????????????
转载地址:http://eyaq.baihongyu.com/