2015-06-14 10 views
11

Dường như có thể để bù đắp sự biến dạng fisheye sử dụng ffmpeg nhờ vào bộ lọc lenscorrection:Có cách nào để loại bỏ GoPro fisheye sử dụng ffmpeg

ffmpeg -i in.mp4 -vf "lenscorrection=cx=0.5:cy=0.5:k1=-.25:k2=-.25" out.mp4 

gì giá trị cho k1k2, đặc biệt đối với một GOPRO? Có cách nào để tính toán chúng không?

+0

Duplicate qua trong video: http://video.stackexchange.com/questions/12667/linux-command-line-option-to-do-video-lens-correction – payne

+0

@abernier Tôi nghĩ cung cấp một ví dụ ** đầu vào ** hình ảnh (video grab) sẽ tăng tốc độ nhận được một số câu trả lời. –

Trả lời

4

FFmpeg có bộ lọc lenscorrection có thể được sử dụng để sửa đổi méo xuyên tâm trong video. Điều đó nói rằng, không có nhiều ngữ cảnh hơn - chẳng hạn như mô hình và cài đặt máy ảnh của bạn - sẽ rất khó để cung cấp thêm thông tin. Tôi nghi ngờ nó sẽ đòi hỏi một chút của thử và lỗi anyway.

PS: Bạn đã thử chạy phần mềm của máy ảnh theo WINE chưa? Một số phiên bản của nó dường như có loại bộ lọc chỉnh sửa được xác định trước và dễ dàng truy cập.

+3

Cảm ơn câu trả lời, nhưng tôi đang tìm các thông số ffmpeg cho thấu kính (hoặc mã nguồn mở khác, không sử dụng phần mềm của bên thứ 3). – user4223883

+0

yep, thx cho câu trả lời nhưng giá trị cụ thể cho 'k1' và' k2' sẽ là tuyệt vời cho gopro – abernier

11

Tôi không nghĩ rằng có một (các) cài đặt chung để bao gồm tất cả các kiểu ống kính GoPro &. Yếu tố cũng là người ta có thể sử dụng một số ống kính tùy chỉnh/thay thế.

Tôi đã hy vọng cho một hình ảnh ví dụ tính năng những gì bạn phải làm việc với, nhưng đừng bận tâm ...
Hy vọng dưới đây là hữu ích cho bạn trong một số cách

Kiểm tra liên kết này cho GoPro Hero 3 settings (áp dụng cho các mô hình khác). Để có được một ý tưởng thô nhất k1k2 giá trị, bạn nên tìm ra tỷ lệ khía cạnh khu vực gần với độ phân giải hình ảnh của bạn sau đó ...

Chia H. FOV deg với V. FOV deg và nhân kết quả với Diag. FOV deg.

Ví dụ: nơi kích thước hình ảnh là 1920 x 1080: Điều này làm cho màn hình rộng 16: 9.

Cài đặt GoPro 3: 16 x 9 Màn hình rộng :: H fov = 69.5 || V fov = 118,2 || Diag = 133,6

Vì vậy 118.2/69.5 * 133.6 = 227.216 etc

cho k1 kết quả hiện nay là số nguyên 227 (thả các điểm thập phân).

cho k2 giá trị 0.022 có vẻ phổ biến (tất cả hình ảnh thử nghiệm), vì vậy bạn có thể thử k2=-.022.

cho cxcy giữ nguyên dạng: cx=0.5:cy=0.5:.

Ví dụ:

ffmpeg -i in.mp4 -vf "lenscorrection=cx=0.5:cy=0.5:k1=-0.227:k2=-0.022" out.mp4

Kết quả: (hình ảnh ban đầu tìm thấy qua Google images của một GoPro Hero-2 video).

+0

Số học có thể được thực hiện trong lệnh nếu muốn. – LordNeckbeard

+0

Tuyệt vời! Bạn vừa thắng số tiền thưởng;) Tuy nhiên, bạn có thể giải thích giá trị k2 nhiều hơn một chút không? Tại sao nó là "phổ quát"? Cảm ơn một lần nữa – abernier

+1

@abernier Cảm ơn. Về 'k2' nó không phải là quá nhiều mà nó phổ quát nhưng chỉ là nó hoạt động cho loại ống kính mắt cá. Hình ảnh thử nghiệm của tôi tất cả đều có kiểu hình ảnh "bên trong vòng tròn" (với các cạnh màu đen). Nó có thể không tốt nhất cho ống kính toàn cảnh (hình ảnh méo mó nhưng màn hình fils không có viền đen). Tôi đang đi làm nhiệm vụ ngay bây giờ, nhưng sẽ cập nhật thêm thông tin/ví dụ sau tối nay. –

Các vấn đề liên quan