質問: sum_i_gray + sum_face_gray; をmatlab coderでc++ソースコードファイルに変換しました。(入力iの型:uint8 600 x 450 x 3 ) その後、packngoコマンドにより、ビルドに必要な全てのファイルをパッケージ化し(パッケージ化したものをzipファイルで添付させていただきます) visual studio 2019 により統合開発環境を整えました。(各リンカーの設定に問題はありません) そこで実行をしたところ、sum_i_grayは予想通りの値が出力されましたが、sum_face_grayに関しては予想とは違う値が出力されてしまいました。 そこで以下のような推測を立てました。 「rgb2gray, sum関数はc++変換後も正しく機能しているが、imcrop関数は正しく機能していない」 そこで最終的な質問ですが、imcrop関数をはじめとする一部関数においてはc++変換後にバグが発生してしまうのでしょうか? ===========開発環境====================== os: windows 10 pro 開発環境: visual studio 2019 使用言語: c++ ========================================
回答: 回答がついていないようなので。 自分のワークフローに機能を取り込んでしまうと、自分のバグなのか、ツールのバグなのか切り分けができなくなります。 簡単なコードでツールの挙動を確認してから、自分のワークフローに組み込んでみましょう。 function out = aaa(in) out = imcrop(in, [75 68 130 112]); end についてmex化して、以下のように確認してみてください。 filename = 'cameraman.tif'; in = imread(filename); out0 = imcrop(in, [75 68 130 112]); out1 = aaa(in); out2 = aaa_mex(in); isequal(out0, out1, out2) 少なくとも私の環境r2019a, msvc++2017, win10の環境ではisequalは1を返します。 以上、ご参考まで