[英]iOS/iPhone/iPad: Determine the size of an object lying on a business card
[英]iOS Determine the corners of a Business Card in realtime
我想實現一個名片檢測功能,如這個應用程序( https://scanbot.io )。 相機應該檢測到一張名片並自動拍照(只有名片)。
我的想法是使用BradLarson's GPUImage
庫,檢測角落(使用Harris角點檢測算法),計算獲得角落的最大矩形並裁剪矩形內的圖像。
這是我的代碼:
- (void)setupFilter {
videoCamera = [[GPUImageVideoCamera alloc] initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionBack];
filter = [[GPUImageHarrisCornerDetectionFilter alloc] init];
[(GPUImageHarrisCornerDetectionFilter *)filter setThreshold:0.01f];
[(GPUImageHarrisCornerDetectionFilter *)filter setSensitivity:0.5f];
[(GPUImageHarrisCornerDetectionFilter *)filter setBlurRadiusInPixels:2.0f];
[videoCamera addTarget:filter];
videoCamera.runBenchmark = YES;
GPUImageView *filterview = [[GPUImageView alloc] init];
self.view=filterview;
GPUImageCrosshairGenerator *crosshairGenerator = [[GPUImageCrosshairGenerator alloc] init];
crosshairGenerator.crosshairWidth = 22.0;
[crosshairGenerator forceProcessingAtSize:CGSizeMake(480.0, 640.0)];
[(GPUImageHarrisCornerDetectionFilter *)filter setCornersDetectedBlock:^(GLfloat* cornerArray, NSUInteger cornersDetected, CMTime frameTime) {
[crosshairGenerator renderCrosshairsFromArray:cornerArray count:cornersDetected frameTime:frameTime];
}];
GPUImageAlphaBlendFilter *blendFilter = [[GPUImageAlphaBlendFilter alloc] init];
[blendFilter forceProcessingAtSize:CGSizeMake(480.0, 640.0)];
GPUImageGammaFilter *gammaFilter = [[GPUImageGammaFilter alloc] init];
[videoCamera addTarget:gammaFilter];
[gammaFilter addTarget:blendFilter];
[crosshairGenerator addTarget:blendFilter];
[blendFilter addTarget:filterview];
[videoCamera startCameraCapture];
}
問題是我不知道如何調整屬性的threshold
和sensibility
屬性來獲得角落(現在我正在獲取圖像中所有對象的角落)。
我也不知道如何使用這個GLfloat* cornerArray
。
我不知道我是否正確的方式...關於如何實現此功能的任何其他想法,還是有任何現有的庫?
謝謝!
閱讀Hough Transform 。 有了它,你可以檢測線條。 我會敦促你檢測直線,然后發現四條線彼此大致成直角,並采用最大面積的矩形。
步驟將是:
最后:計算機視覺很難......不要指望輕松的結果。
我應該注意上面的第3步非常簡單,因為線條所采用的角度只是霍夫空間的一個維度。 因此,平行線在此維度中將具有相等的值,並且正交線將移位pi或90度。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.