モバイルアプリからDPMデータマトリックスをスキャンする方法

Mig82

AndroidアプリでZXingを利用してデータマトリックスをスキャンしようとしていますこれまでのところ、私はこのような印刷されたデータマトリックスで成功しています

ここに画像の説明を入力してください

しかし、レーザーで印刷された、またはパンチされた他のデータマトリックスには、正方形のマークではなく、円のマークがあります。

ここに画像の説明を入力してください

これらには問題があります。これをスキャンできると私が見つけた唯一のアプリはQRDroidです。この記事では、QRDroidはZXingを使用していると述べているので、可能であれば、方法があるはずだと思います。残念ながら、QRDroidはオープンソースプロジェクトではないので、方法がわかりません。

もちろん、QRDroidがアルゴリズムを使用して、データマトリックスを読み取ろうとする前に、丸で囲んだマークを四角いマークに変換している可能性があります。Javaでの画像操作については何も知らないので、これがどのように行われるか想像できません。

私の質問は、このタイプのデータマトリックスを読み取るためにZXingを微調整する方法があるかどうか、またはZXingで読み取り可能にするために画像を操作するために使用できるライブラリがあるかどうかです。

編集:

画像エディタを使用する場合(たとえば、https://www.befunky.comを使用して10のぼかしを適用する場合)、通常の印刷データマトリックスのように見え、スキャンは機能します。Androidアプリでこれを行うにはどうすればよいですか?

ここに画像の説明を入力してください

Mig82

After some research I found out that this type of marking is not really considered a standard data matrix but rather referred to by the manufacturing industry as a DPM, which stands for "Direct Part Marking", although I've read other sources call it "Dot Peen Marking" or "Dot Peen Matrix"

I posted this same question on an already existing issue in the Zxing repository and this was the reply I got:

The problem is the WhiteRectDetector. It finds a white rectangle inside the code, similar to this issue. If you rotate the image slightly (say 10°) or you blur it as you did or you did a suitably sized pixel dilation followed by an erosion, you'll get something that should (mostly) be detectable.

Modifying the WhiteRectDetector, to allow for dots rather than squares was not really an option for me due to deadlines, so I ended up switching from Zxing to Scandit, which is proven to be able to scan this.

Scanditはプロプライエタリライブラリですが、他の選択肢は実際には見つかりませんでした。ただし、トライアルライセンスを取得できます。DPMをスキャンするために試してみたい人のために、このシンボルのスキャンを有効にする方法についてのドキュメントはあまり明確ではないので、ここにトリックがあります。

Androidの場合:

settings.getSymbologySettings(Barcode.SYMBOLOGY_DATA_MATRIX)
.setExtensionEnabled("direct_part_marking_mode", true);

Objective-Cの場合:

[[settings settingsForSymbology:SBSSymbologyDatamatrix] 
setExtension:@"direct_part_marking_mode" enabled:YES];

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Androidモバイルデバイス管理:すべてのアプリでスクリーンショットのキャプチャを無効にする

分類Dev

GET jsonpリクエストのコールバックからデータをキャッチする方法は?

分類Dev

スクリプトからタッチスクリーンデバイスを検出する方法は?

分類Dev

データベースからC#(チャットアプリケーション)に送信されるイベントをキャッチする方法

分類Dev

Androidアプリケーションでリモートデータベースから値をキャッシュする適切な方法

分類Dev

リモートデスクトップクライアントの「ビットマップキャッシュ」オプションは何をしますか?

分類Dev

コマンドラインからChromeリモートデスクトップを再起動する方法

分類Dev

アンドロイドでグーグルマップAPIキーをデバッグからリリースに変更する方法は?

分類Dev

ジャンプホスト(?ゲートウェイサーバー?)を使用してリモートサーバーからローカルデスクトップにファイルを転送する方法

分類Dev

作成したHelmチャートをローカルマシンからリモートKubernetesクラスターにデプロイする

分類Dev

Linuxのコマンドライン(別名bashスクリプト)からデバッグモードでQtプロジェクトをビルドする

分類Dev

データはサーバーから来るとマルチレベルドロップダウンリストとバインドを作成する方法

分類Dev

.net モバイル Web サイトからモバイル デバイスにデータを保存するためのシンプルなクライアント側ストレージ ソリューションはありますか?

分類Dev

カスタマイズしたディストリビューションの不要なファイルまたはキャッシュをどのようにクリア/クリーンアップするか

分類Dev

(バッチ)スクリプトから複数のモニターで複数のChromeフルスクリーンインスタンスを開始する

分類Dev

JavaでGoogleクラウドデータフローを使用してクラウドストレージから読み取るときに、csvファイルのキャリッジリターンをスキップする方法

分類Dev

リモートデスクトップを介してリモートPCからローカルUSBデバイスにアクセスしますか?

分類Dev

ローカルからリモートマシンにバックアップ/ rsnapshot / backupninjaをrdiffする方法は?

分類Dev

AzureMLパイプラインスクリプトのステップからモデルを登録する方法

分類Dev

ワールドスペースボーンマトリックスからバインドポーズ/スキンマトリックスを計算する

分類Dev

バッチモードでストリーミングリンク/ URLをキャプチャ/抽出する方法

分類Dev

カピバラのスクリーンショットをgitlabランナーからデジタルオーシャンキャッシュにアップロードするにはどうすればよいですか?

分類Dev

サイトからデータをスクレイピングするためのマルチスレッドC#コンソールアプリ

分類Dev

クライアントオブジェクトモデルを使用してSharepointからドロップダウンリストにデータバインド

分類Dev

マテリアルデザインでappCompatを使用してコンテキストアクションバーをカスタマイズする方法

分類Dev

iOSエンタープライズアプリをバックアップして複数のデバイスにインストールする方法

分類Dev

デバッグ目的でAngularアプリケーションからコンソールで$ stateオブジェクトをキャプチャする方法は?

分類Dev

バリデーターからモデルインスタンスにアクセスする

分類Dev

スクリプトのヘルプを期待する-sendコマンドからデータをキャプチャする

Related 関連記事

  1. 1

    Androidモバイルデバイス管理:すべてのアプリでスクリーンショットのキャプチャを無効にする

  2. 2

    GET jsonpリクエストのコールバックからデータをキャッチする方法は?

  3. 3

    スクリプトからタッチスクリーンデバイスを検出する方法は?

  4. 4

    データベースからC#(チャットアプリケーション)に送信されるイベントをキャッチする方法

  5. 5

    Androidアプリケーションでリモートデータベースから値をキャッシュする適切な方法

  6. 6

    リモートデスクトップクライアントの「ビットマップキャッシュ」オプションは何をしますか?

  7. 7

    コマンドラインからChromeリモートデスクトップを再起動する方法

  8. 8

    アンドロイドでグーグルマップAPIキーをデバッグからリリースに変更する方法は?

  9. 9

    ジャンプホスト(?ゲートウェイサーバー?)を使用してリモートサーバーからローカルデスクトップにファイルを転送する方法

  10. 10

    作成したHelmチャートをローカルマシンからリモートKubernetesクラスターにデプロイする

  11. 11

    Linuxのコマンドライン(別名bashスクリプト)からデバッグモードでQtプロジェクトをビルドする

  12. 12

    データはサーバーから来るとマルチレベルドロップダウンリストとバインドを作成する方法

  13. 13

    .net モバイル Web サイトからモバイル デバイスにデータを保存するためのシンプルなクライアント側ストレージ ソリューションはありますか?

  14. 14

    カスタマイズしたディストリビューションの不要なファイルまたはキャッシュをどのようにクリア/クリーンアップするか

  15. 15

    (バッチ)スクリプトから複数のモニターで複数のChromeフルスクリーンインスタンスを開始する

  16. 16

    JavaでGoogleクラウドデータフローを使用してクラウドストレージから読み取るときに、csvファイルのキャリッジリターンをスキップする方法

  17. 17

    リモートデスクトップを介してリモートPCからローカルUSBデバイスにアクセスしますか?

  18. 18

    ローカルからリモートマシンにバックアップ/ rsnapshot / backupninjaをrdiffする方法は?

  19. 19

    AzureMLパイプラインスクリプトのステップからモデルを登録する方法

  20. 20

    ワールドスペースボーンマトリックスからバインドポーズ/スキンマトリックスを計算する

  21. 21

    バッチモードでストリーミングリンク/ URLをキャプチャ/抽出する方法

  22. 22

    カピバラのスクリーンショットをgitlabランナーからデジタルオーシャンキャッシュにアップロードするにはどうすればよいですか?

  23. 23

    サイトからデータをスクレイピングするためのマルチスレッドC#コンソールアプリ

  24. 24

    クライアントオブジェクトモデルを使用してSharepointからドロップダウンリストにデータバインド

  25. 25

    マテリアルデザインでappCompatを使用してコンテキストアクションバーをカスタマイズする方法

  26. 26

    iOSエンタープライズアプリをバックアップして複数のデバイスにインストールする方法

  27. 27

    デバッグ目的でAngularアプリケーションからコンソールで$ stateオブジェクトをキャプチャする方法は?

  28. 28

    バリデーターからモデルインスタンスにアクセスする

  29. 29

    スクリプトのヘルプを期待する-sendコマンドからデータをキャプチャする

ホットタグ

アーカイブ