2017-09-07 3 views
1

カメラプレビューレイヤーのライブプレビューで検出ゾーンを取得しようとしています。は、カメラプレビューレイヤー、iOS、Swiftのセクションでのみ検出します。

ライブフィードがあり、顔検出が可能なのですか?周囲を見回すと、画面の中央の矩形などの特定の領域に顔の周囲にボックスを置くだけです。プレビュー内の四角形の外側にある他のすべての面は検出されませんか?

私はVision、iOS、Swiftを使用しています。

+0

あなたが出てくるものは、私は今も同じことをしようとしていますか? – djay

+0

私は検出エリアにガードを置くことが最も良い方法を見つけました。そのため、文字の強調表示機能のテキストのxCord yCordの幅と高さが、あなたが見たいテキストだけを見たい場合は、cgrectを作成します。次に、guard2cgrect.contains(1stcgrect.origin)を使用します。それ以外の場合は、caLayerを見る前にこれを入れてください。これは、興味のあるテキストの中でのみ、事の周りに輪郭を描きます。https://medium.com/@tonymerritt/hi-peng -27ff127cd659?source = linkShare-8fa3bb4b8b91-1511567697私もここに投稿しました –

+1

@djay私はこれに私の答えを掲載していますので、あなたはそれを正しく見ることができます –

答えて

0

私はビュービューでは、負荷

@IBOutlet weak var scanAreaImage: UIImageView! 
var regionOfInterest: CGRect! 

をした前負荷 scanAreaImage.frameが、私はストーリーボード経由で入れたイメージ図でなかったのCALayerは

を追加する前にガードを追加することで、これを考え出したとこれは、私が欲しかっただけの領域を表しています。

let someRect: CGRect = scanAreaImage.frame 
     regionOfInterest = someRect 

視覚的テキスト検出セクション。

func highlightLetters(box: VNRectangleObservation) { 

    let xCord = box.topLeft.x * (cameraPreviewlayer?.frame.size.width)! 
    let yCord = (1 - box.topLeft.y) * (cameraPreviewlayer?.frame.size.height)! 
    let width = (box.topRight.x - box.bottomLeft.x) * (cameraPreviewlayer?.frame.size.width)! 
    let height = (box.topLeft.y - box.bottomLeft.y) * (cameraPreviewlayer?.frame.size.height)! 

// This is the section I Added for the rec of interest detection zone. 
////////////////////////////////////////////// 

    let wordRect = CGRect(x: xCord, y: yCord, width: width, height: height) 
    guard regionOfInterest.contains(wordRect.origin) else { return } // only draw a box if the orgin of the word box is within the regionOfInterest 

// regionOfInterest being the cgRect you created earlier  
    ////////////////////////////////////////////// 

    let outline = CALayer() 
    outline.frame = CGRect(x: xCord, y: yCord, width: width, height: height) 
    outline.borderWidth = 1.0 
    if textColour == 1 { 
     outline.borderColor = UIColor.blue.cgColor 
    }else { 
     outline.borderColor = UIColor.clear.cgColor 
    } 

    cameraPreviewlayer?.addSublayer(outline) 

これはあなたがストーリーボードで作成した長方形の中のものの輪郭が表示されます。 (私はscanAreaImageです)

私はこれが誰かを助けることを望みます。

関連する問題