Có gì mới?
Diễn đàn ứng dụng xử lý ảnh công nghiệp trong sản xuất

Đây là một tin nhắn khách mời. Đăng ký một tài khoản miễn phí ngay hôm nay để trở thành một thành viên! Sau khi đăng nhập, bạn sẽ có thể tham gia trang web này bằng cách thêm các chủ đề và bài đăng của riêng bạn, cũng như kết nối với các thành viên khác thông qua hộp thư đến riêng của bạn!

C/C++ Hiệu chỉnh camera với OpenCV

Ngôn ngữ C/C++

hieule

Thành viên BQT
CTO
Admin
Dev Leader
Machine Vision Expert
Green Industry
Tham gia
21/10/2023
Bài viết
24
Điểm
1,039
Nơi ở
Việt Nam
Để hiệu chỉnh camera do hiện tượng biến dạng ống kính, bạn cần thực hiện một quá trình gọi là hiệu chỉnh camera (camera calibration). Quá trình này giúp bạn xác định các tham số camera như ma trận camera và các hệ số méo, từ đó bạn có thể sử dụng chúng để khử méo hình ảnh chụp từ camera.

Dưới đây là một hướng dẫn sơ bộ về cách thực hiện camera calibration sử dụng OpenCV:
1. Chụp hình: Chụp một loạt ảnh của một bảng hiệu chỉnh hoặc bảng kiểm tra với các điểm đặc biệt. Đảm bảo bảng đen hoặc các điểm trên bảng có đủ sự phân tán trong khung hình.
Bảng hiểu chỉnh có thể là bảng bao gồm có cac ô vuông (mẫu 1) như hình dưới đây:
pattern-1.png

Hoặc bao gồm các hình tròn (mẫu 2) như hình dưới đây:
pattern-2.png

2. Tạo file dữ liệu calibration: Tạo một file văn bản với các thông tin về các ảnh bạn đã chụp. Mỗi dòng trong file này chứa đường dẫn tương ứng với một ảnh. Ví dụ

path/to/image1.jpg
path/to/image2.jpg​
3. Viết mã để thực hiện calibration
Dưới đây là một đoạn mã sử dụng OpenCV để hiệu chỉnh camera:


Trong đoạn mã trên, findChessboardCorners được sử dụng để tìm các góc trên bảng, và sau đó calibrateCamera được sử dụng để tính toán ma trận camera và các hệ số méo. Kết quả được lưu vào một file XML để sử dụng sau này.
4. Sử dụng ma trận camera và hệ số méo: Sau khi có được ma trận camera và hệ số méo, bạn có thể sử dụng chúng để khử méo ảnh bằng cách sử dụng hàm undistort trong mã thực hiện khử méo camera như đã mô tả trong câu trả lời trước.

Lưu ý rằng quá trình calibration nên được thực hiện khi camera thay đổi vị trí hoặc góc nhìn lớn.
 
Sửa lần cuối:

NCM

Thành viên
Tham gia
30/12/2023
Bài viết
2
Điểm
3
Tuổi
26
Nơi ở
Bắc Ninh
Cảm ơn anh. Bài viết rất tuyệt vời
 
Bình luận

Khang trịnh

Thành viên
Tham gia
11/04/2024
Bài viết
1
Điểm
1
Tuổi
22
Nơi ở
TPHCM
Để hiệu chỉnh camera do hiện tượng biến dạng ống kính, bạn cần thực hiện một quá trình gọi là hiệu chỉnh camera (camera calibration). Quá trình này giúp bạn xác định các tham số camera như ma trận camera và các hệ số méo, từ đó bạn có thể sử dụng chúng để khử méo hình ảnh chụp từ camera.

Dưới đây là một hướng dẫn sơ bộ về cách thực hiện camera calibration sử dụng OpenCV:
1. Chụp hình: Chụp một loạt ảnh của một bảng hiệu chỉnh hoặc bảng kiểm tra với các điểm đặc biệt. Đảm bảo bảng đen hoặc các điểm trên bảng có đủ sự phân tán trong khung hình.
Bảng hiểu chỉnh có thể là bảng bao gồm có cac ô vuông (mẫu 1) như hình dưới đây:
pattern-1.png

Hoặc bao gồm các hình tròn (mẫu 2) như hình dưới đây:
pattern-2.png

2. Tạo file dữ liệu calibration: Tạo một file văn bản với các thông tin về các ảnh bạn đã chụp. Mỗi dòng trong file này chứa đường dẫn tương ứng với một ảnh. Ví dụ


3. Viết mã để thực hiện calibration
Dưới đây là một đoạn mã sử dụng OpenCV để hiệu chỉnh camera:

*** Văn bản ẩn: không thể được trích dẫn. ***

Trong đoạn mã trên, findChessboardCorners được sử dụng để tìm các góc trên bảng, và sau đó calibrateCamera được sử dụng để tính toán ma trận camera và các hệ số méo. Kết quả được lưu vào một file XML để sử dụng sau này.
4. Sử dụng ma trận camera và hệ số méo: Sau khi có được ma trận camera và hệ số méo, bạn có thể sử dụng chúng để khử méo ảnh bằng cách sử dụng hàm undistort trong mã thực hiện khử méo camera như đã mô tả trong câu trả lời trước.

Lưu ý rằng quá trình calibration nên được thực hiện khi camera thay đổi vị trí hoặc góc nhìn lớn.
thanks ạ
 
Bình luận

letrunghieu

Thành viên
Tham gia
24/06/2024
Bài viết
10
Điểm
1
Tuổi
22
Nơi ở
Hải Dương
Để hiệu chỉnh camera do hiện tượng biến dạng ống kính, bạn cần thực hiện một quá trình gọi là hiệu chỉnh camera (camera calibration). Quá trình này giúp bạn xác định các tham số camera như ma trận camera và các hệ số méo, từ đó bạn có thể sử dụng chúng để khử méo hình ảnh chụp từ camera.

Dưới đây là một hướng dẫn sơ bộ về cách thực hiện camera calibration sử dụng OpenCV:
1. Chụp hình: Chụp một loạt ảnh của một bảng hiệu chỉnh hoặc bảng kiểm tra với các điểm đặc biệt. Đảm bảo bảng đen hoặc các điểm trên bảng có đủ sự phân tán trong khung hình.
Bảng hiểu chỉnh có thể là bảng bao gồm có cac ô vuông (mẫu 1) như hình dưới đây:
pattern-1.png

Hoặc bao gồm các hình tròn (mẫu 2) như hình dưới đây:
pattern-2.png

2. Tạo file dữ liệu calibration: Tạo một file văn bản với các thông tin về các ảnh bạn đã chụp. Mỗi dòng trong file này chứa đường dẫn tương ứng với một ảnh. Ví dụ


3. Viết mã để thực hiện calibration
Dưới đây là một đoạn mã sử dụng OpenCV để hiệu chỉnh camera:

*** Văn bản ẩn: không thể được trích dẫn. ***

Trong đoạn mã trên, findChessboardCorners được sử dụng để tìm các góc trên bảng, và sau đó calibrateCamera được sử dụng để tính toán ma trận camera và các hệ số méo. Kết quả được lưu vào một file XML để sử dụng sau này.
4. Sử dụng ma trận camera và hệ số méo: Sau khi có được ma trận camera và hệ số méo, bạn có thể sử dụng chúng để khử méo ảnh bằng cách sử dụng hàm undistort trong mã thực hiện khử méo camera như đã mô tả trong câu trả lời trước.

Lưu ý rằng quá trình calibration nên được thực hiện khi camera thay đổi vị trí hoặc góc nhìn lớn.
thankssss
 
Bình luận

haitran2118

Thành viên
Tham gia
03/07/2024
Bài viết
1
Điểm
1
Tuổi
35
Nơi ở
Hồ Chí Minh
Để hiệu chỉnh camera do hiện tượng biến dạng ống kính, bạn cần thực hiện một quá trình gọi là hiệu chỉnh camera (camera calibration). Quá trình này giúp bạn xác định các tham số camera như ma trận camera và các hệ số méo, từ đó bạn có thể sử dụng chúng để khử méo hình ảnh chụp từ camera.

Dưới đây là một hướng dẫn sơ bộ về cách thực hiện camera calibration sử dụng OpenCV:
1. Chụp hình: Chụp một loạt ảnh của một bảng hiệu chỉnh hoặc bảng kiểm tra với các điểm đặc biệt. Đảm bảo bảng đen hoặc các điểm trên bảng có đủ sự phân tán trong khung hình.
Bảng hiểu chỉnh có thể là bảng bao gồm có cac ô vuông (mẫu 1) như hình dưới đây:
pattern-1.png

Hoặc bao gồm các hình tròn (mẫu 2) như hình dưới đây:
pattern-2.png

2. Tạo file dữ liệu calibration: Tạo một file văn bản với các thông tin về các ảnh bạn đã chụp. Mỗi dòng trong file này chứa đường dẫn tương ứng với một ảnh. Ví dụ


3. Viết mã để thực hiện calibration
Dưới đây là một đoạn mã sử dụng OpenCV để hiệu chỉnh camera:

*** Văn bản ẩn: không thể được trích dẫn. ***

Trong đoạn mã trên, findChessboardCorners được sử dụng để tìm các góc trên bảng, và sau đó calibrateCamera được sử dụng để tính toán ma trận camera và các hệ số méo. Kết quả được lưu vào một file XML để sử dụng sau này.
4. Sử dụng ma trận camera và hệ số méo: Sau khi có được ma trận camera và hệ số méo, bạn có thể sử dụng chúng để khử méo ảnh bằng cách sử dụng hàm undistort trong mã thực hiện khử méo camera như đã mô tả trong câu trả lời trước.

Lưu ý rằng quá trình calibration nên được thực hiện khi camera thay đổi vị trí hoặc góc nhìn lớn.
Thanks ạ
 
Bình luận

Phạm Việt Anh

Thành viên
Tham gia
20/08/2024
Bài viết
1
Điểm
1
Tuổi
22
Nơi ở
Nhổn
Để hiệu chỉnh camera do hiện tượng biến dạng ống kính, bạn cần thực hiện một quá trình gọi là hiệu chỉnh camera (camera calibration). Quá trình này giúp bạn xác định các tham số camera như ma trận camera và các hệ số méo, từ đó bạn có thể sử dụng chúng để khử méo hình ảnh chụp từ camera.

Dưới đây là một hướng dẫn sơ bộ về cách thực hiện camera calibration sử dụng OpenCV:
1. Chụp hình: Chụp một loạt ảnh của một bảng hiệu chỉnh hoặc bảng kiểm tra với các điểm đặc biệt. Đảm bảo bảng đen hoặc các điểm trên bảng có đủ sự phân tán trong khung hình.
Bảng hiểu chỉnh có thể là bảng bao gồm có cac ô vuông (mẫu 1) như hình dưới đây:
pattern-1.png

Hoặc bao gồm các hình tròn (mẫu 2) như hình dưới đây:
pattern-2.png

2. Tạo file dữ liệu calibration: Tạo một file văn bản với các thông tin về các ảnh bạn đã chụp. Mỗi dòng trong file này chứa đường dẫn tương ứng với một ảnh. Ví dụ


3. Viết mã để thực hiện calibration
Dưới đây là một đoạn mã sử dụng OpenCV để hiệu chỉnh camera:

*** Văn bản ẩn: không thể được trích dẫn. ***

Trong đoạn mã trên, findChessboardCorners được sử dụng để tìm các góc trên bảng, và sau đó calibrateCamera được sử dụng để tính toán ma trận camera và các hệ số méo. Kết quả được lưu vào một file XML để sử dụng sau này.
4. Sử dụng ma trận camera và hệ số méo: Sau khi có được ma trận camera và hệ số méo, bạn có thể sử dụng chúng để khử méo ảnh bằng cách sử dụng hàm undistort trong mã thực hiện khử méo camera như đã mô tả trong câu trả lời trước.

Lưu ý rằng quá trình calibration nên được thực hiện khi camera thay đổi vị trí hoặc góc nhìn lớn.
many thanks
 
Bình luận

Hue

Thành viên
Tham gia
07/01/2025
Bài viết
1
Điểm
1
Tuổi
34
Nơi ở
Hà Nội
Để hiệu chỉnh camera do hiện tượng biến dạng ống kính, bạn cần thực hiện một quá trình gọi là hiệu chỉnh camera (camera calibration). Quá trình này giúp bạn xác định các tham số camera như ma trận camera và các hệ số méo, từ đó bạn có thể sử dụng chúng để khử méo hình ảnh chụp từ camera.

Dưới đây là một hướng dẫn sơ bộ về cách thực hiện camera calibration sử dụng OpenCV:
1. Chụp hình: Chụp một loạt ảnh của một bảng hiệu chỉnh hoặc bảng kiểm tra với các điểm đặc biệt. Đảm bảo bảng đen hoặc các điểm trên bảng có đủ sự phân tán trong khung hình.
Bảng hiểu chỉnh có thể là bảng bao gồm có cac ô vuông (mẫu 1) như hình dưới đây:
pattern-1.png

Hoặc bao gồm các hình tròn (mẫu 2) như hình dưới đây:
pattern-2.png

2. Tạo file dữ liệu calibration: Tạo một file văn bản với các thông tin về các ảnh bạn đã chụp. Mỗi dòng trong file này chứa đường dẫn tương ứng với một ảnh. Ví dụ


3. Viết mã để thực hiện calibration
Dưới đây là một đoạn mã sử dụng OpenCV để hiệu chỉnh camera:

*** Văn bản ẩn: không thể được trích dẫn. ***

Trong đoạn mã trên, findChessboardCorners được sử dụng để tìm các góc trên bảng, và sau đó calibrateCamera được sử dụng để tính toán ma trận camera và các hệ số méo. Kết quả được lưu vào một file XML để sử dụng sau này.
4. Sử dụng ma trận camera và hệ số méo: Sau khi có được ma trận camera và hệ số méo, bạn có thể sử dụng chúng để khử méo ảnh bằng cách sử dụng hàm undistort trong mã thực hiện khử méo camera như đã mô tả trong câu trả lời trước.

Lưu ý rằng quá trình calibration nên được thực hiện khi camera thay đổi vị trí hoặc góc nhìn lớn.
Like
 
Bình luận
Top