問題タブ [cidetector]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
366 参照

ios - CIDetchor は常に nil のままで、QRCode を読み取ることができません

QRCOde を読み取るために CIDetector を初期化できません。常に nil のままです。これが私のコードです:

置き換えるCIDetectorTypeQRCodeCIDetectorTypeRectangle初期化されますが、QRコードを読み取る必要があります

過去2日間から試しています、助けてください

0 投票する
0 に答える
301 参照

ios - 大きな画像と異なる縦横比で CIDetector と CIFaceFeature を使用する方法

私はこれに何日も取り組んできましたが、画像サイズがUIImageViewと同じ場合、すべての例があります。さらに、スタックに関する回答の多くは時代遅れです。

ユーザーが画像を追加できるアプリがあります。画像は任意のサイズで、750X750、1280X920 などの異なるアスペクト比にすることができます。もちろん、UIImageView は小さく、コンテンツ モードは Aspect Fill に設定されています。私は多くのテストを行ったので、これまでに行ったことは次のとおりです。

  1. アフィン変換を使用して CoreImage 座標を UIKit に変換します

  2. 画像幅の大きな画像からスケール比を取得し、UIImageView 幅で縮小します。

画像がUIImageViewの正確な縦横比である場合、上記の両方が機能すると思いますが、Aspect Fillを使用すると大きくなる可能性があるため、幅が範囲外になる可能性があるため、Face Rectは次のように正しくありません倍率は UIImageView の幅です。

よろしくお願いいたします。

0 投票する
2 に答える
5379 参照

ios - CIDetector と Swift を使用して画像で検出された四角形をトリミングする方法

IDカードを検出するアプリに取り組んでおり、iosに組み込まれたCIDetectorを使用して、ライブプレビューで長方形のオブジェクトを検出しようとしています。このチュートリアルで説明されているソリューションをここで使用しています CoreImage Detectors

私は流れる結果の 画像を取得しています

私の質問:検出された長方形を抽出してトリミングする方法はありますか?

0 投票する
1 に答える
653 参照

swift - 他のバーコード タイプの CIDetector はありますか

CIDetectorTypeQRCode を見ています。他の種類のバーコードを検出するにはどうすればよいですか? AVMetadataObjectType を介して他のバーコード タイプを読み取ることができますが、CIDetector でも同じことを行いたいと考えています。バーコードのリアルタイム強調表示を実現しようとしています。

私の AVCaptureMetadataOutputObjectsDelegate が完全なロックとコードの読み取りを達成する前に、一種のズームインを試みています。

0 投票する
0 に答える
1456 参照

swift - 検出された長方形に画像を追加する

を使用しCIDetectorて、長方形の画像に置き換えたい長方形を検出しています。

検出は正常に機能しており、その上にオーバーレイを描画できます。画像をすべてのコーナーに合わせて貼り付けるにはどうすればよいですか?

コードは次のとおりです。

オーバーレイを単純に画像に置き換えると、画像が非常に小さく表示され、特定の 1 つの角だけにくっついて四角形が塗りつぶされません。

アップデート:

Simons プロジェクトを使用すると、私が望んでいた結果が得られますが、しばらくするとフレーム レートが 1 fps 未満に低下します。

0 投票する
0 に答える
445 参照

ios - CIDetector RectOfInterest

私がする必要があるのは、ドキュメントをスキャンするためのスキャナーを作成することです。現在CIDetector、タイプを使用して長方形を検出するために使用していますCIDetectorTypeRectangle

正常に動作し、エッジのある長方形を検出しています。

これで、ドキュメントがこれらのオーバーレイ フレーム内にある場合、スキャナだけがそのドキュメントを検出するように、4 つのコーナーでスキャナ ビュー オーバーレイを作成しました。ビデオリンク

AVCaptureMetadataOutput同じことを行うプロパティがありますrectOfInterestが、残念ながらドキュメントのスキャンには使用できません。

0 投票する
1 に答える
1322 参照

ios - CAShapeLayer と UIBezeirPath を使用して、ライブ カメラ フィードで検出された四角形のパスを描画する方法

ライブ カメラ フィードで四角形を検出し、検出された四角形を強調表示するアプリケーションを開発しています。AVFoundation検出された長方形を検出して強調表示するために、以下の方法を使用してカメラを使用しました。

と を使っCAShapeLayerUIBezierPath四角形を描きました。これは非常に遅いです。パスは数分後に表示されます。

誰かが遅い理由を理解するのを手伝ってくれますか、ここで何か間違っているかどうか教えてください。どんな助けでも大歓迎です。

または、これよりも簡単な方法があれば、それも知りたいです。

0 投票する
2 に答える
3885 参照

ios - UIBezierPath で CIRectangleFeature を表現する - Swift

現在、UIImage の四角形を検出するために CIDetector を使用しています。座標をフィルターに渡してCIImageを取得し、取得したUIImageの上に置くという提案された方法を実行しています。次のようになります。

performRectangleDetection を呼び出すと、検出された四角形が CIImage を介して表示されます。

上の写真のような感じです。ストロークに設定された UIBezierPath を使用して、この同じ赤い四角形を表示する必要があります。100% 正確でない場合にユーザーが検出を調整できるように、これが必要です。パスを描画しようとしましたが、失敗しました。これが私がパスを描く方法です。rect というカスタム クラスを使用して 4 つのポイントを保持します。検出は次のとおりです。

次に、座標をスケーリングする必要があります。これを行うRectクラス内の関数は次のとおりです。

最後にパスを描きます:

パスが画面から外れており、不正確です。座標を CoreImage 座標から UIKit 座標に調整し、UIImageView 用にスケーリングする必要があることはわかっています。残念ながら、それを適切に行う方法がわかりません。これを達成するために検出コードの一部を再利用できることはわかっていますが、実行する正しい手順がわかりません。どんな助けでも大歓迎です!ありがとう。何が起こっているかの例を次に示します。

アップデート

scaleRect() で実行するスケーリングをテストするために、ImageView のサイズを画像のサイズと同じにすることにしました。次に、スケーリングの前後の座標を印刷しました。それらは同じなので、私のスケーリングは適切に行われていると思います。コードは次のとおりです。

出力は次のとおりです。

(742.386596679688、927.240844726562)

(1514.93835449219、994.811096191406)

(1514.29675292969、155.2802734375)

(741.837524414062、208.55403137207)


(742.386596679688、927.240844726562)

(1514.93835449219、994.811096191406)

(1514.29675292969、155.2802734375)

(741.837524414062、208.55403137207)

アップデート

座標を試してスケーリングするために、さらに2つのことを試しました。

番号 1: ポイントを画像から UIImageView に変換するために、UIView convertPoint 関数を使用しようとしました。コーディング方法は次のとおりです。scaleRect()関数を次のように置き換えました

次に、これらのポイントを含む新しい rect を返しました。

その2:画像とimageViewの幅と高さの違いから座標を簡単に変換してみました。コードは次のとおりです。

更新 CGAffineTransform も使用してみました。コード:

どれも機能していません。他に何を試すことができるかわかりません。助けてください。それは大歓迎です。ありがとう!