前提・実現したいこと
HE染色された画像をブロブ検出したいと考えています。
ライブラリを用いて、3種類の方法で検出したいと考えているのですが、DoHのところでエラーが発生します。
ブロブ検出機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
ValueError: Buffer dtype mismatch, expected 'double_t' but got 'float'
該当のソースコード
Python
1from math import sqrt 2from skimage import util 3from skimage.feature import blob_dog, blob_log, blob_doh 4from skimage.color import rgb2gray 5import matplotlib.pyplot as plt 6 7image = plt.imread('f9dd57a42e7747e256d484405b3e1d0a.png') 8image_gray = rgb2gray(image) 9image_gray = util.invert(image_gray) 10 11"""logによる検出""" 12blobs_log = blob_log(image_gray, max_sigma=30, num_sigma=10, threshold=.1) 13 14# Compute radii in the 3rd column. 15blobs_log[:, 2] = blobs_log[:, 2] * sqrt(2) 16 17"""Dogによる検出""" 18blobs_dog = blob_dog(image_gray, max_sigma=30, threshold=.1) 19blobs_dog[:, 2] = blobs_dog[:, 2] * sqrt(2) 20 21"""DoHによる検出""" 22blobs_doh = blob_doh(image_gray, max_sigma=30, threshold=.01)###ここでエラーが発生します### 23#blobs_list = [blobs_log, blobs_dog, blobs_doh] 24 25"""結果""" 26blobs_list = [blobs_log, blobs_dog, blobs_doh] 27colors = ['yellow', 'lime', 'red'] 28titles = ['Laplacian of Gaussian', 'Difference of Gaussian', 29 'Determinant of Hessian'] 30sequence = zip(blobs_list, colors, titles) 31 32fig, axes = plt.subplots(1, 3, figsize=(9, 3), sharex=True, sharey=True) 33ax = axes.ravel() 34 35for idx, (blobs, color, title) in enumerate(sequence): 36 ax[idx].set_title(title) 37 ax[idx].imshow(image_gray,cmap="gray") 38 for blob in blobs: 39 y, x, r = blob 40 c = plt.Circle((x, y), r, color=color, linewidth=1, fill=False) 41 ax[idx].add_patch(c) 42 ax[idx].set_axis_off() 43plt.tight_layout() 44plt.savefig('plot_blob_invert.png',dpi=100) 45plt.show()
試したこと
どこを直したらいいのかわからず、止まっています。
補足情報(FW/ツールのバージョンなど)
回答1件
あなたの回答
tips
プレビュー