2010-02-17 55 views
6

Tôi cần mã để xoay ảnh trong C++ có chức năng như hàm imrotate của MATLAB. Vui lòng đề xuất một liên kết tốt. Hoặc nếu ai đó có thể cung cấp mã cho imrotate.Xoay ảnh trong C/C++

Hoặc ít nhất hãy giải thích thuật toán.

Đó không phải là bài tập về nhà. Tôi cần mã này cho dự án của tôi. Và chúng tôi có thể sử dụng bất kỳ thư viện hoặc mã bên ngoài nào.

Trả lời

8

OpenCV2.0 có một số công cụ tầm nhìn máy tính và xử lý ảnh. Cụ thể, warpAffine (bằng cách xác định ma trận xoay vòng) sẽ giải quyết vấn đề của bạn bằng cách xoay hình ảnh.

Ma trận chuyển đổi 2x3 được đề cập trong tài liệu hướng dẫn thực hiện như sau: alt text

nơi θ là góc quay và t x và t y là bản dịch dọc theo xy trục tương ứng.

Bạn có thể lấy mã nguồn here.

Ngoài ra, OpenCV2.0 có nhiều chức năng MATLAB-esque như imread vv

+1

(+1) Bạn tôi sử dụng lib này và yêu thích nó Xem tại đây http://ashish-newday.blogspot.com/2009/12/mouse-cursor-position-control-using-our.html –

+1

Nhưng không có hình ảnh warpImage in openCV – avd

+1

Lỗi của tôi, tôi đã cập nhật nó thành đúng chức năng 'warpAffine' – Jacob

1

Check hy vọng điều này sẽ hữu ích.

Các câu hỏi khác về ngăn xếp tràn trên same topic ý kiến ​​của các chuyên gia về nó.

3

Magick có thể giúp bạn. Đọc this PDF và tìm kiếm xoay.

+0

Imagemagick, tùy chọn tốt nhất cho bạn – Craig

0

Không có cách tích hợp để thực hiện điều này trong C++, viết tắt chức năng của riêng bạn để thao tác dữ liệu nhị phân, tạo ra các vấn đề khác như "Làm cách nào để giải nén jpg/png trong C++?"

Tốt nhất là một thứ 3 thư viện đồ họa bên như libSDL

+0

Câu hỏi là một cách hoàn toàn hợp lệ để yêu cầu thư viện có thể liên kết từ C++. – slim

+1

... Tôi tin rằng tôi đã liên kết anh ấy với một thư viện có thể liên kết? – meagar