回答
Anit-shake功能是一個非常複雜的功能。我認爲這是一些強大的模糊檢測/去除算法和iPhone上的陀螺儀的組合。
您可以先用iPhone調查how to detect motion開始,然後查看可以得到哪種結果。如果這還不夠,請開始查看shift/blur direction detection algorithms。這不是一個微不足道的問題,但是如果有足夠的時間,你可以完成這個任務。希望有助於!
+1對真正模糊的「爲我做的」類型問題提供真正有用的答案。 – mmc
// Ensures the shake is strong enough on at least two axes before declaring it a shake.
// "Strong enough" means "greater than a client-supplied threshold" in G's.
static BOOL L0AccelerationIsShaking(UIAcceleration* last, UIAcceleration* current, double threshold) {
double
deltaX = fabs(last.x - current.x),
deltaY = fabs(last.y - current.y),
deltaZ = fabs(last.z - current.z);
return
(deltaX > threshold && deltaY > threshold) ||
(deltaX > threshold && deltaZ > threshold) ||
(deltaY > threshold && deltaZ > threshold);
}
@interface L0AppDelegate : NSObject <UIApplicationDelegate> {
BOOL histeresisExcited;
UIAcceleration* lastAcceleration;
}
@property(retain) UIAcceleration* lastAcceleration;
@end
@implementation L0AppDelegate
- (void)applicationDidFinishLaunching:(UIApplication *)application {
[UIAccelerometer sharedAccelerometer].delegate = self;
}
- (void) accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
if (self.lastAcceleration) {
if (!histeresisExcited && L0AccelerationIsShaking(self.lastAcceleration, acceleration, 0.7)) {
histeresisExcited = YES;
/* SHAKE DETECTED. DO HERE WHAT YOU WANT. */
} else if (histeresisExcited && !L0AccelerationIsShaking(self.lastAcceleration, acceleration, 0.2)) {
histeresisExcited = NO;
}
}
self.lastAcceleration = acceleration;
}
// and proper @synthesize and -dealloc boilerplate code
@end
我GOOGLE了它,並在How do I detect when someone shakes an iPhone?發現
我不認爲這將是足夠好的OP什麼需要,但很好發現:) –
謝謝,但檢測抖動的結束是複雜的和浪費時間。 – iProgrammed
- 1. 晃動應用程序,iPhone
- 2. 用iPhone拍照,然後使用它!
- 3. 開始晃動應用程序iphone
- 4. 激活iPhone拍照動作崩潰我的應用程序
- 5. 自動拍照 - iPhone
- 6. 在iOS應用拍照
- 7. 在iPhone上將應用程序應用於前景晃動中
- 8. 當在iPhone上拍攝照片然後抓取該照片時是否可以檢測到程序?
- 9. iphone檢測整個應用程序的搖晃
- 10. 如何捕捉照片,然後iOS應用程序最小化?
- 11. 調用Facebook應用程序拍照
- 12. 拍攝照片和iOS應用程序,不會出現在iOS照片應用程序
- 13. Android - 用搖晃啓動應用程序
- 14. 在iPhone 4G拍照時應用程序崩潰了嗎?
- 15. iPhone應用程序照片拍攝問題
- 16. 在iPhone應用程序中錄製視頻/拍照切換?
- 17. 拍照時應用程序崩潰
- 18. 如何在應用程序iOS中保存拍攝的照片?
- 19. iOS應用程序在拍攝連續照片時崩潰
- 20. iOS應用程序在拍照時崩潰
- 21. 僅在iOS環境中拍攝照片應用程序
- 22. 從iphone應用程序啓動照片庫應用程序
- 23. iPhone拍照導致白屏拍照
- 24. IOS/iPhone照片連拍模式API
- 25. 從android應用程序的web應用程序拍照2.3
- 26. Android應用程序拍攝一張照片後崩潰?
- 27. 拍攝照片後應用程序崩潰
- 28. 我拍照片的應用程序在電話後關閉
- 29. 拍照後更新圖庫android相機應用程序失敗
- 30. 在iOS應用程序中拍照後可以避開「使用」/「重拍」屏幕嗎?
防抖複雜得多比你想象的。那麼如何在用戶搖晃iPhone 2秒鐘後拍攝照片。 – iProgrammed