2013-09-02 56 views
5

Tôi đang làm việc trên một ứng dụng trong iOS sẽ xảy ra sự kiện nếu máy ảnh phát hiện một số thay đổi trong hình ảnh hoặc chúng tôi có thể nói chuyển động trong hình ảnh. Ở đây tôi không hỏi về nhận diện khuôn mặt hay chuyển động hình ảnh màu đặc biệt, Và tôi có tất cả kết quả cho OpenCV khi tôi tìm kiếm, Và tôi cũng thấy rằng chúng ta có thể đạt được điều này bằng cách sử dụng con quay hồi chuyển và gia tốc cả hai, nhưng làm sao ??Cảm biến chuyển động bằng camera trong iOS

Tôi là người mới bắt đầu trong iOS.Vì vậy, câu hỏi của tôi là, Có bất kỳ khung hoặc bất kỳ cách dễ dàng nào để phát hiện chuyển động hoặc cảm biến chuyển động của máy ảnh.Và làm thế nào để đạt được?

Ví dụ: nếu tôi di chuyển tay trước máy ảnh thì nó sẽ hiển thị một số thông báo hoặc cảnh báo.

Và plz cho tôi một số liên kết hữu ích và dễ hiểu về điều này. Thanx

+0

đây không phải là câu trả lời chính thức, [nhưng có rất nhiều tin đồn] (http://www.google.com/search?q=motion+detection+ios) rằng iOS 7 sẽ bao gồm một số loại Tính năng phát hiện chuyển động. –

+0

Vì vậy, không có cách nào để đạt được điều này MichaelDautermann. –

+0

Tôi không nói rằng @Shyam; những gì tôi đã nói là phát hiện chuyển động có thể trở nên dễ dàng hơn rất nhiều chỉ trong vài tuần. Bạn cũng có thể thực hiện tìm kiếm để xem một số SDK hoặc giải pháp nguồn mở đã tồn tại chưa. –

Trả lời

10

Nếu tất cả những gì bạn muốn là một số loại phát hiện chuyển động thô, khung nguồn mở GPUImage của tôi có GPUImageMotionDetector bên trong nó.

Máy dò chuyển động được thừa nhận đơn giản này thực hiện so sánh khung hình, dựa trên bộ lọc low-pass và có thể xác định số điểm ảnh đã thay đổi giữa các khung và trọng tâm của vùng đã thay đổi. Nó hoạt động trên video trực tiếp và tôi biết một số người đã sử dụng nó để kích hoạt chuyển động các chức năng trong ứng dụng iOS của họ.

Bởi vì nó dựa trên sự khác biệt pixel và không phù hợp với lưu lượng quang học hoặc tính năng, nó có thể dễ bị sai tích cực và không thể theo dõi các đối tượng rời rạc khi chúng di chuyển trong một khung. Tuy nhiên, nếu tất cả những gì bạn cần là cảm biến chuyển động cơ bản, điều này khá dễ dàng để rơi vào ứng dụng của bạn. Hãy xem ví dụ về FilterShowcase để xem nó hoạt động như thế nào trong thực tế.

+0

Khi tôi cố gắng chạy ví dụ FilterShowCase sau đó nó được hiển thị lỗi trong tập tin GPUImageBilateralFilter.m: - Sử dụng định danh không khai báo '_distanceNormalizationFactor' Ở đây tôi đang sử dụng Xcode 4.3.3 và tôi đã thử nó trong Xcode 4.1 sau đó nó hiển thị các lỗi như sau: Tên loại không xác định '__unsafe_unretained' @Brad Larson –

+0

Ý nghĩa của khung lõi Video liên kết yếu là gì ??? Bạn đã viết trong phần giới thiệu của khung công tác. @ Brad Larson –

+0

@ShyamDixit - Xcode 4.1 là khá cổ đại vào thời điểm này, không sử dụng cho bất cứ điều gì. Bạn cần có hỗ trợ ARC cho khuôn khổ này để hoạt động và tôi khuyên bạn nên sử dụng Xcode 4.4 trở lên. Ngoài ra, hãy sử dụng mã mới nhất từ ​​kho lưu trữ, vì thuộc tính 'distanceNormalizationFactor' được định nghĩa chính xác ở đó cho các phiên bản Xcode cũ hơn, nhưng đã được sửa một vài tháng trước. Trong Xcode mới nhất, để liên kết yếu một cái gì đó, thay đổi trạng thái của khung công tác từ Bắt buộc sang Tùy chọn trong giai đoạn Xây dựng Nhị phân với Thư viện. –

1

Tôi không hiểu chính xác những gì bạn có nghĩa là ở đây:

Ở đây tôi không hỏi về nhận diện khuôn mặt hay một chuyển động hình ảnh màu đặc biệt, bởi vì tôi có tất cả kết quả cho OpenCV khi tôi đã tìm kiếm

Nhưng tôi khuyên bạn nên sử dụng opencv vì bạn có thể sử dụng opencv trong IOS. Đây là một liên kết tốt giúp bạn setup opencv in ios.

Có rất nhiều mã phát hiện chuyển động opencv trực tuyến và đây là one among them, bạn có thể sử dụng.

Bạn cần chuyển đổi UIImage (loại hình ảnh trong IOS) thành cv::Mat hoặc IplImage và chuyển nó vào thuật toán opencv. Bạn có thể chuyển đổi bằng cách sử dụng this link hoặc this.