Tôi muốn thực hiện một vài thao tác với một CVPixelBufferRef
và đi ra với một vụ mùa cv::Mat
Làm thế nào để chuyển đổi từ một CVPixelBufferRef một cv OpenCV :: Mat
- đến một khu vực quan tâm
- quy mô đến một kích thước cố định
- cân bằng histogram
- chuyển đổi sang thang màu xám - 8 bit cho mỗi pixel (
CV_8UC1
)
Tôi không chắc chắn về thứ tự hiệu quả nhất là làm điều này, tuy nhiên, tôi biết rằng tất cả các hoạt động có sẵn trên một ma trận CV mở, vì vậy tôi muốn biết cách chuyển đổi nó.
- (void) captureOutput:(AVCaptureOutput *)captureOutput
didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer
fromConnection:(AVCaptureConnection *)connection
{
CVPixelBufferRef pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);
cv::Mat frame = f(pixelBuffer); // how do I implement f()?
Hi @Robert, bạn có biết làm thế nào bạn có thể làm điều ngược lại đó là chuyển đổi cv :: Mat thành CVPixelBuffer hoặc Buffer mẫu? Cảm tạ. – lilouch
Đoạn mã sau sẽ không hoạt động tối thiểu trên iPhone 6 và iPhone6 + với iOS 10.2 mà tôi đã thử nghiệm vì mảng pixel cơ bản không liên tục trong bộ nhớ. Vui lòng xem câu trả lời cập nhật của tôi tại đây http://stackoverflow.com/questions/12355257/open-cv-ios-video-processing/43523459#43523459. – PalmRobotZ
Còn Swift thì sao? – user924