синтаксис: неожиданный "=" в Юлии - PullRequest
0 голосов
/ 29 августа 2018

Я написал этот фрагмент кода Джулии, который фильтрует ключевые точки на изображении путем интерполяции полей экстремума по разнице в гауссовом масштабе.

mutable struct discrete_extremum
    o
    s
    m
    n
    intensity
end
mutable struct candidateKeypoint
    oE
    s
    m
    n
    σ
    x
    y
    ω
end

LB = Array{candidateKeypoint}(0)
for extremum in LA′
    for i = 1:5
        H̄ = Hessian(extremum.o, extremum.s, extremum.m, extremum.n)
        ḡ = ThreeDgradient(extremum.o, extremum.s, extremum.m, extremum.n)
        α⋆ = alphaStar(H̄, ḡ)
        ω = omega(H̄, ḡ, extremum.o, extremum.s, extremum.m, extremum.n)
        δOE = δMin * 2^(extremum.o - 1)
        α1⋆ = α⋆[1]
        α2⋆ = α⋆[2]
        α3⋆ = α⋆[3]
        σ = (δOE/δMin) * σMin * 2^((α1⋆ + extremum.s)/nSpo)
        x = δOE * (α2⋆ + extremum.m)
        y = δOE * (α2⋆ + extremum.n)
        extremum.s, extremum.m, extremum.n = round(Int64, extremum.s + α1⋆), round(Int64, extremum.m + α2⋆), round(Int64, extremum.n + α3⋆)
        if max(abs(α1⋆), abs(α2⋆), abs(α3⋆)) < 0.6
            break
        end
    end
    if max(abs(α1⋆), abs(α2⋆), abs(α3⋆)) < 0.6
        push!(LB, candidateKeypoint(extremum, σ, x, y, ω))
    end
end

Я получаю эту ошибку:

синтаксис: неожиданный "="

Номер строки не указан. Ребята, можете подсказать, что я делаю не так?

P.S. Я также разместил вопрос здесь .

1 Ответ

0 голосов
/ 29 августа 2018

Полагаю, проблема в ваших α⋆, α1⋆, α2⋆, α3⋆ переменных, потому что символ является оператором Юлии . В целом, использование символов Юникода - это хорошо, но старайтесь избегать использования символов операторов, которые уже имеют значение в языке.

Вы можете заменить ваш α⋆ на α′ (\ alpha с последующим \ prime) или ̂α (\ hat с последующим \ alpha), например. Однако не переусердствуйте с не-ASCII символами. Они призваны сделать код более читабельным, а не меньшим.

ОБНОВЛЕНИЕ: Объединенные комментарии @DNF и @ phg.

...