Ý tôi là không có thanh màu đen. 1080 không phải là bội số của 768, vậy có mất dữ liệu không?
Ý tôi là không có thanh màu đen. 1080 không phải là bội số của 768, vậy có mất dữ liệu không?
Câu trả lời:
Về bản chất, hình ảnh là một nhóm các mẫu điểm (đọc Một pixel không phải là một hình vuông nhỏ 3 ). Khi bạn chuyển đổi hoặc chia tỷ lệ hình ảnh, bạn cần phải lấy mẫu lại. Vì vậy, về mặt lý thuyết, những gì bạn làm là lấy các mẫu điểm và chuyển đổi chúng thành một hàm liên tục. Sau đó, bạn lấy mẫu chức năng liên tục đó và tái tạo tín hiệu. Vì vậy, có hai hoặc ba giai đoạn khác nhau ở đây.
Lưu ý rằng không có bước nào trong số này có dạng cố định. Trong thực tế, khi được tối ưu hóa, không thể nói rằng có các bước. Việc chuyển đổi không thực sự đơn giản, nó có thể ánh xạ hình dạng thành một hình xoắn ốc, v.v.
Hình 1 : Tín hiệu 1-D được tái tạo bởi các bộ lọc khác nhau.
Trong thực tế, khá nhiều truyền thuyết được biết về tái tạo tín hiệu trong trường xử lý tín hiệu. Thiết kế các bộ lọc này và chọn đúng bộ lọc là một hình thức nghệ thuật của riêng nó. Nhưng, về bản chất, sự lựa chọn của bộ lọc là sự đánh đổi giữa làm mờ và đổ chuông . Tất nhiên thuật toán cũng có những phẩm chất khác như cần bao nhiêu hướng dẫn để thực hiện và tốc độ và dung lượng bộ nhớ cần, v.v. Điều này có thể rất quan trọng trong các ứng dụng nhúng hoặc thời gian thực.
Hình 2 : Tổng quan về toàn bộ quá trình.
Có rất nhiều thuật toán nâng cấp và thu nhỏ có sẵn để chia tỷ lệ hình ảnh từ bất kỳ độ phân giải nào sang bất kỳ độ phân giải tùy ý nào khác. Mỗi thuật toán thường bao gồm một sự đánh đổi giữa hiệu quả, độ mịn và độ sắc nét, với các mức độ khác nhau của mỗi lần đánh đổi cho các thuật toán khác nhau.
Kiểm tra bài viết Wikipedia này cho các thuật toán và ví dụ về các thuật toán như vậy.
Thuật toán phổ biến nhất (và được sử dụng) là thuật toán nội suy bicubic . Nó nội suy giữa các điểm 2D trên lưới hình chữ nhật. Sử dụng Splines khối (hoặc Nội suy hình khối), trước tiên, nó nội suy trên một chiều (tìm hàng / cột nội suy), sau đó nội suy hàng / cột nội suy theo chiều khác.
Nội suy song phương tương tự như nội suy bicubic, ngoại trừ các phép nội suy trước sử dụng hàm tuyến tính và chỉ có thể nội suy giữa hai giá trị và hàm sau sử dụng hàm khối và có thể nội suy giữa bốn giá trị.
Hàm đơn giản cho phép nội suy bicubic như sau:
f(f(p00, p01, p02, p03, y),
f(p10, p11, p12, p13, y),
f(p20, p21, p22, p23, y),
f(p30, p31, p32, p33, y),
x)
trong đó (x, y) là vị trí nội suy và p [] [] là mảng 2d đại diện cho lưới 4 * 4.
Kiểm tra liên kết này để biết thêm thông tin và mã ví dụ, điều này thực sự giúp ích rất nhiều!
Mặc dù các câu trả lời khác được đưa ra là chính xác nhưng tôi không chắc họ hoàn toàn trả lời câu hỏi của bạn. Để không nhận được các thanh màu đen, bạn có 2 tùy chọn nếu đích không có cùng hình dạng (hoặc tỷ lệ khung hình) như nguồn:
Có một tùy chọn khác, nhưng nó không phù hợp với tiêu chí của bạn - quy mô đồng đều, nhưng chỉ cho đến khi 1 chiều lớn như đích đến. Trong trường hợp này, bạn sẽ chia tỷ lệ theo chiều ngang và chiều dọc theo 1.40625 để có kết quả 1440x1080. Điều này thường được gọi là "quy mô để phù hợp".
Đối với bất kỳ tùy chọn nào trong số này, bạn có thể sử dụng bất kỳ thuật toán chia tỷ lệ nào đáp ứng nhu cầu của bạn.