FindContour, FindContoursで強制終了
Nicious  2016/07/02(Sat) 18:51
Imaging::FindContour(s)の呼び出しで強制終了が起こります。
不具合か、こちらの使い方の問題か判断が付きませんでした。回避手段あればご教授頂ければ幸いです。

以下のコードで発生しました。
siv3D-kun.pngをmspaint.exeで上書き保存すると落ちずに動きます。
(jpgで上書き保存してみたところ、こちらはダメでした)



# include <Siv3D.hpp>

void Main()
{
Image img(L"Example\\siv3D-kun.png");
auto ret = Imaging::FindContours(img, false); //ここで落ちる
Texture tex(img);

while (System::Update())
{
tex.draw();
if(System::FrameCount() & 0x20) for (auto &i : ret)i.draw(Palette::Red);
}
}


お時間のある時にご確認頂ければ嬉しいです。
記事編集
Reputeless  2016/07/07(Thu) 19:16
ご報告ありがとうございます。調査します。
なお、FindContour() 系の関数は、画像中に幅が1ピクセルの領域が含まれているとクラッシュする不具合があります。
編集
Nicious  2016/07/11(Mon) 23:27
返信と不具合の情報、ありがとうございます。
強制終了する行のコードを

auto ret = Imaging::FindContours(img.scale(3,Interpolation::Nearest), false);

と書き換え、処理対象の画像を拡大してみたところ動作しましたので、
ご記載頂いた不具合の関係かも知れません。
取り急ぎ、必要になった時には一旦拡大して対処してみようかと思います。
編集
件名
Re: FindContour, FindContoursで強制終了
名前
コメント
画像添付


投稿修正キー (投稿を修正する時に使います)
画像認証 (右画像の数字を入力) 投稿キー

- WEB PATIO -