Hướng dẫn nearest neighbor interpolation image python - trăn hình ảnh nội suy hàng xóm gần nhất

Nội suy hình ảnh

Hướng dẫn nearest neighbor interpolation image python - trăn hình ảnh nội suy hàng xóm gần nhất

Nội suy hình ảnh đề cập đến việc thay đổi kích thước của một hình ảnh kỹ thuật số. Nội suy là vấn đề xấp xỉ giá trị của hàm cho một điểm không được cung cấp trong một số không gian khi được đưa ra giá trị của hàm đó trong các điểm xung quanh (lân cận) điểm đó.

Nội suy hình ảnh có ba kỹ thuật chính:

1. Nội suy hàng xóm gần nhất

Nội suy lân cận gần nhất (còn được gọi là nội suy gần hoặc, trong một số bối cảnh, lấy mẫu điểm) là một phương pháp nội suy đa biến đơn giản trong một hoặc nhiều chiều. Thuật toán hàng xóm gần nhất chọn giá trị của điểm gần nhất và không xem xét các giá trị của các điểm lân cận, mang lại một nội suy liên tục. Thuật toán rất đơn giản để thực hiện và thường được sử dụng (thường cùng với mipmapping) trong kết xuất 3D thời gian thực để chọn các giá trị màu cho bề mặt kết cấu (Wikipedia).

Hướng dẫn nearest neighbor interpolation image python - trăn hình ảnh nội suy hàng xóm gần nhất

2. Nội suy song phương

Nội suy song tuyến được thực hiện bằng cách sử dụng phép nội suy tuyến tính trước một hướng, và sau đó một lần nữa theo hướng khác. Nội suy song tuyến sử dụng các giá trị chỉ có 4 pixel gần nhất, nằm theo hướng chéo từ một pixel đã cho, để tìm các giá trị cường độ màu thích hợp của pixel đó (wikipedia).

Hướng dẫn nearest neighbor interpolation image python - trăn hình ảnh nội suy hàng xóm gần nhất
Hướng dẫn nearest neighbor interpolation image python - trăn hình ảnh nội suy hàng xóm gần nhất

3. Nội suy bicubic

Trong quá trình xử lý hình ảnh, phép nội suy bicubic thường được chọn trên nội suy song song hoặc lân cận gần nhất trong việc lấy mẫu hình ảnh, khi tốc độ không phải là vấn đề. Trái ngược với phép nội suy song song, chỉ đưa 4 pixel (2 × 2) vào tài khoản, nội suy bicubic xem xét 16 pixel (4 × 4) (Wikipedia)

Hướng dẫn nearest neighbor interpolation image python - trăn hình ảnh nội suy hàng xóm gần nhất
Hướng dẫn nearest neighbor interpolation image python - trăn hình ảnh nội suy hàng xóm gần nhất

Kết quả

Hướng dẫn nearest neighbor interpolation image python - trăn hình ảnh nội suy hàng xóm gần nhất
Hướng dẫn nearest neighbor interpolation image python - trăn hình ảnh nội suy hàng xóm gần nhất
Hướng dẫn nearest neighbor interpolation image python - trăn hình ảnh nội suy hàng xóm gần nhất

Dự án nhân bản

$ git clone https://github.com/yasinEnigma/Image_Interpolation/
$ pip3 install -r requirements.txt
$ python3 main.py

%Cột theo phép nội suy


Đỏ = đỏ (:, ic);

Hướng dẫn nearest neighbor interpolation image python - trăn hình ảnh nội suy hàng xóm gần nhất


%KÊNH XANH

Mã MATLAB:

TEMP = A (:,:, 2);

Màu xanh lá cây = temp (ir, :);

A(:)=[10,2,9,4,18,14,22,7,25];

Màu xanh lá cây = màu xanh lá cây (:, ic);%Before Interpolation

%Kênh màu xanh'nearest');

Temp = a (:,: 3);%After Interpolation

Màu xanh = temp (ir, :);

Màu xanh = xanh dương (:, ic);

Bây giờ, hãy để xem cách thực hiện phép nội suy hàng xóm gần nhất mà không cần sử dụng chức năng MATLAB ‘Imresize

Hướng dẫn nearest neighbor interpolation image python - trăn hình ảnh nội suy hàng xóm gần nhất

Mã MATLAB:

%Đọc một hình ảnh đầu vào

A=imread('cameraman.tif');'cameraman.tif');

% Xác định kích thước mẫu lại

Col = 512;

Hàng = 512;

%Tìm thấy tỷ lệ của kích thước mới theo kích thước cũ

rtr = hàng/kích thước (a, 1);

RTC = col/kích thước (a, 2);

%Có được các vị trí nội suy

Ir = trần ([1: (kích thước (a, 1)*rtr)] ./ (rtr));

IC = trần ([1: (kích thước (a, 2)*rtc)] ./ (rtc));

%ROW_WOME Nội suy

B = a (:, ir);

%Cột theo phép nội suy

B = b (ic, :);

hình, subplot (121), imshow (a); tiêu đề ('trước khi nội suy'); trục ([0,512,0,512]); trục trên;'BEFORE INTERPOLATION'); axis([0,512,0,512]);axis on;

subplot (122), imshow (b); tiêu đề ('sau khi nội suy'); & nbsp; trục ([0,512,0,512]); trục trên;'AFTER INTERPOLATION');  axis([0,512,0,512]);axis on;

Hướng dẫn nearest neighbor interpolation image python - trăn hình ảnh nội suy hàng xóm gần nhất

Mã MATLAB:

quet sạch tât cảall

CLC

đóng tất cảall

%Đọc hình ảnh RGB

A=imread('peppers.png');'peppers.png');

% Xác định kích thước mẫu lại

Col = 512;

Hàng = 512;

%Tìm thấy tỷ lệ của kích thước mới theo kích thước cũ

rtr = hàng/kích thước (a, 1);

RTC = col/kích thước (a, 2);

%Có được các vị trí nội suy

Ir = trần ([1: (kích thước (a, 1)*rtr)] ./ (rtr));

IC = trần ([1: (kích thước (a, 2)*rtc)] ./ (rtc));

%ROW_WOME Nội suy

B = a (:, ir);

%Cột theo phép nội suy

B = b (ic, :);

hình, subplot (121), imshow (a); tiêu đề ('trước khi nội suy'); trục ([0,512,0,512]); trục trên;

subplot (122), imshow (b); tiêu đề ('sau khi nội suy'); & nbsp; trục ([0,512,0,512]); trục trên;

%KÊNH XANH

TEMP = A (:,:, 2);

%Nội suy hàng theo hàng

Màu xanh lá cây = temp (ir, :);

%Cột theo phép nội suy

Màu xanh lá cây = màu xanh lá cây (:, ic);

%Kênh màu xanh

Temp = a (:,: 3);

%Nội suy hàng theo hàng

Màu xanh lá cây = temp (ir, :);

%Cột theo phép nội suy

Màu xanh lá cây = màu xanh lá cây (:, ic);

Output=zeros([Row,Col,3]);

Output(:,:,1)=Red;

Output(:,:,2)=Green;

Output(:,:,3)=Blue;

%Kênh màu xanh

Temp = a (:,: 3);'BEFORE INTERPOLATION'); axis([0,512,0,384]);axis on;

Màu xanh = temp (ir, :);'AFTER INTERPOLATION');  axis([0,512,0,384]);axis on;

EXPLANATION:

Màu xanh = xanh dương (:, ic);

Hướng dẫn nearest neighbor interpolation image python - trăn hình ảnh nội suy hàng xóm gần nhất

Phương pháp nội suy nào là tốt nhất cho hình ảnh?

Bicubic Bicubic tạo ra hình ảnh sắc nét hơn đáng kể so với hai phương pháp trước đó, và có lẽ là sự kết hợp lý tưởng của thời gian xử lý và chất lượng đầu ra. Vì lý do này, nó là một tiêu chuẩn trong nhiều chương trình chỉnh sửa hình ảnh (bao gồm Adobe Photoshop), trình điều khiển máy in và nội suy trong máy ảnh. Bicubic produces noticeably sharper images than the previous two methods, and is perhaps the ideal combination of processing time and output quality. For this reason it is a standard in many image editing programs (including Adobe Photoshop), printer drivers and in-camera interpolation.

3 phương pháp nội suy cho hình ảnh là gì?

Nội suy hình ảnh thường đạt được thông qua một trong ba phương pháp: hàng xóm gần nhất, nội suy song tuyến hoặc nội suy bicubic.nearest neighbor, bilinear interpolation, or bicubic interpolation.

Nội suy hình ảnh trong Python là gì?

Đưa ra một lựa chọn được lấy mẫu ngẫu nhiên của các pixel từ một hình ảnh, scipy.interpolate.griddata có thể được sử dụng để nội suy trở lại biểu diễn của hình ảnh gốc.Mã bên dưới thực hiện điều này, khi được cho ăn tên của một tệp hình ảnh trên dòng lệnh. interpolate. griddata could be used to interpolate back to a representation of the original image. The code below does this, when fed the name of an image file on the command line.

Nội suy hàng xóm gần nhất trong xử lý hình ảnh là gì?

Nội suy lân cận gần nhất (còn được gọi là nội suy gần hoặc, trong một số bối cảnh, lấy mẫu điểm) là một phương pháp nội suy đa biến đơn giản trong một hoặc nhiều chiều.a simple method of multivariate interpolation in one or more dimensions.