このアプローチには 2 つのバージョンがあります。
最初のものは動作します:
from Snaxel import Snaxel
from Snake import Snake
from get_snaxels import get_snaxels;
import numpy
import scipy
from pylab import imread, imshow, gray, mean
from matplotlib.pyplot import imsave
alpha = 1.0
beta = 0.0
gamma = -10.0
delta_y = 3
delta_x = 0
row_idx = 160
contour = [];
count = 0
for i in range(0, 1000):
contour.append((row_idx, i))
snaxels, num_snaxels = get_snaxels(contour)
a = imread('synthesized_kymogram_2.png')
f = numpy.rot90(a, 2)
f = numpy.rot90(a, 2)
snake = Snake(snaxels, alpha, beta, delta_y, delta_x, f, gamma)
snake.MinimizeEnergy()
しかし、次のように修正すると:
from Snaxel import Snaxel
from Snake import Snake
from get_snaxels import get_snaxels;
import numpy
import scipy
from pylab import imread, imshow, gray, mean
from matplotlib.pyplot import imsave
alpha = 1.0
beta = 0.0
gamma = -10.0
delta_y = 3
delta_x = 0
row_idx = 160
contour = [];
count = 0
for i in range(0, 1000):
contour.append((row_idx, i))
snaxels, num_snaxels = get_snaxels(contour)
a = imread('20091016_tumor_26_18245948_1chop.png')
g=ndimage.gaussian_gradient_magnitude(a, 0.4)
snake = Snake(snaxels, alpha, beta, delta_y, delta_x, g, gamma)
snake.MinimizeEnergy()
次のエラーが表示されます。
if energy < min_energy:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
勾配の大きさがうまくいくと思いました。しかし、そうではありませんか?誰もそれを解決する方法を知っていますか?