< Web版ラスタベクタ変換 - ArtLogic
ArtLogic - 画像処理・図形処理・最適化技術

Web版ラスタベクタ変換

アップロードした画像ファイルをラスタベクタ変換して、結果をdxfファイルとして自動的にダウンロードします
ライブラリのコアとなる変換機能だけを制限付きで無償提供しています
制限事項は以下の通り

  1. 後処理の制限
  2. ライブラリには18種類の後処理がありますが、そのうち数個の後処理をセットで行うか全く後処理を行わないかの2択です。
  3. 画像サイズの制限
  4. 画像ファイルのサイズは5MBまで、画像の幅や高さは8000ピクセルまで、画像の総画素数は3200万画素まで
    サーバーの負荷を減らすため。ライブラリには制限はありません。
  5. 変換頻度の制限
  6. 一時間当たり20ファイル、一分当たり3ファイルまで
    特定のIPアドレスからの変換リクエストの集中を防止するために変換頻度も制限しています
  7. 画像ファイルのフォーマットはjpg/png/bmp/tif/gifの5種類のみ
アップロードした画像ファイルは、変換後あるいは変換失敗後に即座に消去されます
それでも心配な方は、秘匿画像をアップロードしないようにしてください
ソースコードを購入することで、デスクトップ上やローカルサーバー上で無制限にライブラリの機能を使うことができるようになります

Google Cloud Run上のWebアプリケーションは(https://artlogic-alvec.cloud.run)です

操作法

(1) index.htmlによる変換画面

Google Cloud Run上のWebアプリケーションは(https://artlogic-alvec.cloud.run)です
Microsoft Azure App/Amazon ECS Express Mode上でも動作確認しています
アップロードした画像ファイルは、変換の成否にかかわらず即座に消去されます
心配な場合は、ソースコードを入手することでオンプレミスで無制限に変換機能を使うことができるようになります

Web版ラスタベクタ変換画面 全容
Web版ラスタベクタ変換画面 全容
英語<-->日本語の切り替え
英語<-->日本語の切り替え
ソースコード入手案内
「以下に該当する場合、ソースコードを入手することができます(クリック)
この行をクリックすると、ソースコードの入手についての説明が表示されます。
もう一度クリックすると説明が消えます

クリックすると詳細が表示されます。もう一度クリックすると詳細が閉じます

以下に該当する場合、ソースコードを入手することができます(クリック)

  1. 秘匿性が高い画像をサーバーに送りたくない
  2.   ローカルなPCで処理を完結したい
  3. 8000×8000、最大32Mピクセルより大きい画像を変換したい
  4.   ギガピクセル級の巨大な画像でも変換可能
  5. 無制限に大量の画像を高速で変換したい
  6.   web版は、同一IPアドレスからのリクエスト制限により3枚/1分、20枚/1時間となっています
      オンプレミス版は無制限。10,000ファイル/1時間でも可能です。
  7. 変換パラメータや後処理を細かくコントロールしたい
  8.   細かい変換パラメータのコントロール
      円変換やスプライン変換、鋭角鮮鋭化、交差点の座標補正等18種類の後処理
  9. 自社でweb/デスクトップアプリケーションを展開/発売したい
  10.   商用利用可能、Web展開可能
      ソースコードを第三者に公開することにだけ制限があります
  11. 特に理由は無いがオンプレミスで実行したい
  12.   Windows/Linux/32bit/64bitでの組み込み可能
      自社サーバーでの運用のためのソースコードも完備
  13. 単に変換のアルゴリズムを学びたい
  14.   他のライブラリへの依存はありません。ライブラリ内ですべてが完結
      Google Cloud Run/Azure App Service/Amazon ECS Express Modeで動作確認済み
      Pythonからの呼び出しコード付属。Python/Flask/gunicornコード完備   Pythonによるデスクトップアプリケーションソースコード付属
問い合わせ先有限会社アートロジックホームページ ダウンロード購入先有限会社アートロジック shopify ページ(近日公開)

(2) index.htmlによる変換:「変換する画像の入力」と「dxfファイルに変換」

変換する画像を選んで、「dxfファイルに変換」ボタンをクリックしてみましょう
最初にローカルPC上の画像ファイルを指定します
必要に応じて変換オプションを指定して、「変換」ボタンをクリックすると画像ファイルがアップロード後に変換
変換結果はdxfファイルとして自動的に、ブラウザで設定したダウンロード先にダウンロードされます

変換する画像の入力前
変換する画像の入力前
変換する画像の選択
ローカルPC上の変換する画像を選択します
選択した画像ファイル名が表示されます
選択した画像ファイル名が表示されます
dxfファイルに変換してダウンロード
dxfファイルに変換してダウンロード
ダウンロードファイルの確認
ダウンロードファイルの確認

(3) 変換オプションの指定

  • 変換精度の指定
  • 精度が高いと頂点が多く、精度が低いと頂点が少なくなります
  • 解像度の指定
  • dpi単位で解像度を指定します。0を指定すると画像ファイルの解像度情報を使います
    ラスタ画像のピクセル単位を、dxfファイルのmm単位に変換するために必要な情報です
  • 後処理の指定
  • 後処理の有無を指定します。後処理は18種ありますが、ここでは後処理無しも含めて4つの選択肢となります
  • 前処理の指定
  • 前処理の有無を指定します。面図形の輪郭を抽出するか、線図形の芯線を抽出するかを4つの選択肢から指定します

精度・頂点数バランスパラメータ
精度・頂点数バランスパラメータを0.8~10.0の範囲で指定
数値が小さいほど、精度が高く、頂点数が多くなります
数値が大きいほど、精度が低く、頂点数が少なくなります
解像度指定
解像度を指定します
画像ファイルの解像度情報を使う場合は"0"を指定してください
Web版の自動ネストアプリでは、カメラ画像を自動補正して解像度も同時に推定する機能がありますが、本アプリではカメラ画像は対象としていません
後処理指定
後処理指定
18種の後処理のうち、「近接頂点の統合」「同一直線上の不要頂点の削除」「鋭角の鮮鋭化」の3つを固定パラメータで実行します。セットで実行するため、どれか一つを実行することはできません
また、円弧変換+ジョイント(交差点での突き抜け処理)するか否かを指定することもできます。片方だけを実行することはできません
  • (0) 3つの後処理を実行する。円弧変換もジョイントも無し
  • (1) 3つの後処理を実行する。円弧変換もジョイントもあり
  • (2) 後処理を実行しない。円弧変換もジョイントも無し
  • (3) 後処理を実行しない。円弧変換もジョイントもあり
変換種別と前処理指定
輪郭変換と芯線変換のどちらを実行するかを指定します。面図形だけを輪郭変換、線図形だけを芯線変換することもできます
  • (0) 全ラスタ画像を対象に輪郭変換する
  • (1) 全ラスタ画像を対象に芯線変換する
  • (2) 面図形のみを対象に輪郭変換する
  • (3) 線図形のみを対象に芯線変換する

(4) curlによるサーバー機能呼び出し

linuxのcurlコマンドによって、サーバーの機能を全て使うことができます。
キー 内容 キー=値の例
input_file 送信する入力ファイル名。"@"は後続のファイルを送信するという意味 input_file=@sample1.bmp
threshold threshold値(0.8~10.0) threshold=1.0
dpi 解像度(単位dpi) : 0の場合は画像ファイルの解像度情報を使う dpi=300
flag 後処理フラグ
  • (0) 3つの後処理を実行する。円弧変換もジョイントも無し
  • (1) 3つの後処理を実行する。円弧変換もジョイントもあり
  • (2) 後処理を実行しない。円弧変換もジョイントも無し
  • (3) 後処理を実行しない。円弧変換もジョイントもあり
flag=0
centerline 変換対象と前処理
  • (0) 全ラスタ画像を対象に輪郭変換する
  • (1) 全ラスタ画像を対象に芯線変換する
  • (2) 面図形のみを対象に輪郭変換する
  • (3) 線図形のみを対象に芯線変換する
centerline=0

ローカルサーバー上のflaskでの利用

以下のflaskコマンドで起動した場合

                    flask --app app run \
                        --debug \
                        --host 127.0.0.1 \
                        --port 5000
                    
以下のurlでindex.htmlを立ち上げるか
                    http://127.0.0.1:5000 or http://localhost:5000
                    
curlコマンドでconvertエントリを呼び出します。
                    curl \
                    -F "input_file=@sample1.bmp" \
                    -F "threshold=1.0" \
                    -F "dpi=300.0" \
                    -F "flag=0" \
                    -F "centerline=0" \
                    http://127.0.0.1:5000/convert \
                    --output result1.dxf
                    
gunicornで以下のようにサーバーを起動した場合も同じcurlコマンドを使うことができます。
                    $ gunicorn \
                        --bind 127.0.0.1:5000 \
                        --workers 1 \
                        --threads 1 \
                        --timeout 120 \
                        --access-logfile - \
                        --error-logfile - \
                        app:app
                    

Google Cloud Run上のurlを使う場合

特に認証も不要の無料Webアプリなので curl コマンド以下のように呼び出します。
ただし、アクセス集中を防ぐために、同一IPアドレスからの呼び出し頻度には以下の制限があります。

  • 1分間に3回まで
  • 1時間に20回まで
                    curl \
                      -F "input_file=@sample1.bmp" \
                      -F "threshold=1.0" \
                      -F "dpi=300.0" \
                      -F "flag=0" \
                      -F "centerline=0" \
                      https://artlogic-alvec.cloud.run \
                      --output result1.dxf
                    

(6) ソースコード

ライブラリのソースコードは有償です
全ソースコード付属。内容は以下の通り

  • ライブラリのソースコード(C++/C)
  • 依存するライブラリ(OpenCV等)はありません。付属ソースコードだけでライブラリをビルドすることができます
    Windows/Linuxでライブラリのビルドが可能
  • プロジェクトファイル/makeファイル
  • Windows用のVisual Studio 2022/2026用のプロジェクトファイル付属(旧VS 2008~2019でもコンパイル・リンク可能)
    Linux用のCMake(CMakeLists.txt)完備
  • サンプルプロジェクト
  • Webアプリ用のFlask/gunicorn向け"app.py"ファイル
    Webアプリにより変換機能を公開していますが、
    購入希望者はshopifyサイトより購入するか当社に直接問い合わせください。
    ライブラリソースコード以外の付属品は以下参照

    ・C++クラスライブラリリファレンスマニュアル

    htmlファイルにより提供