Menggunakan MATLAB Coder di 2019b, baris berikut:

se = strel('line',20,85);

Bahwa MATLAB Coder tidak dapat secara efektif menggambarkan:

1.Semua input harus konstan.

2. Panggilan fungsi gagal

Mengapa Coder mengalami kesulitan dalam strel?

Apakah pembuat kode matlab mendukung strel?

1
ccx 20 November 2020, 05:31

1 menjawab

Jawaban Terbaik

MATLAB Coder mendukung strel. Saya mencoba contoh sederhana berikut di R2019b dan ternyata berhasil.

% Function foo.m
function y = foo
    se = strel('line',20,85);
    y = numel(se.Neighborhood);
end

% Codegen command in command window
>> codegen foo -report

Dari pesan kesalahan yang Anda posting, sepertinya input Anda ke strel tidak konstan, itulah sebabnya codegen gagal. Lihat bagian pembuatan kode C/C++ dalam dokumentasi di sini: https: //www.mathworks.com/help/images/ref/strel.html yang menyatakan sebagai berikut:

Catatan penggunaan dan batasan:

Contoh menampilkan imerode berdasarkan komentar:

% Function foo.m
function y = foo(edgeimg)
    se = strel('line',20,85);
    y = imerode(edgeimg, se.Neighborhood);
end

% Codegen command in command window
% The image must be 2D or 3D according to doc
>> edgeimg = imread('blah.png'); 
>> codegen foo -args edgeimg -report
1
ami91 22 November 2020, 22:13