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

Tôi có một phân công trong đó tôi cần tạo lại chức năng nội suy hàng xóm gần nhất từ ​​đầu trong Python. Tôi mới bắt đầu ngôn ngữ vài ngày trước vì vậy tôi đang cố gắng viết từng bước nhỏ để đạt được điều đó.

Đây là lần đầu tiên tôi cố gắng giải quyết nó :) Lý do đằng sau nó là (đối với một hình ảnh đã cho và tỷ lệ 0,5 chẳng hạn) để mở rộng các vị trí X và Y của hình ảnh gốc thành X 'và Y' như thế này:(for a given image and a scale of 0.5 for example) to scale the positions X and Y of the original image to X' and Y' like this:

Hình dạng của hình ảnh đã cho: 10x10. Tôi muốn mở rộng nó thành 5x5 (đây là một sự hạ thấp)(this is a downscaling)

Vị trí x và y trước khi mở rộng

X = [0,1,2,3,4,5,6,7,8,9] y = [0,1,2,3,4,5,6,7,8,9]

Vị trí x và y sau khi tỷ lệ

X '= [0,2,25,4,5,6,75,9] y' = [0,2,25,4,5,6,75,9]

tròn

X '= [0,2,5,7,9] y' = [0,2,5,7,9]

Sau đó, tôi tra cứu các pixel từ hình ảnh gốc bằng cách sử dụng các vị trí đó

Tôi không biết nếu điều này có ý nghĩa hay tôi đang thiếu một cái gì đó

Mã của tôi (cách tôi đặt tên cho các biến của tôi không quá tuyệt vời) (the way i named my variables is not so great)

def interpolation_nn(image, scale):

    # saving the type of the image
    dtype = image.dtype

    #Adding padding to the image
    img_p = np.pad(image.astype(np.float32), 1)

    # Calculation of the size of the original image and of the interpolated image
    #Original img
    height,width = image.shape 

    #interpolated image
    Scaled_width = (width * scale)
    Scaled_height = (height * scale)

    # Calculation of pixel coordinates in the interpolated image
    Scaled_X_coordinates=np.linspace(0.0, width, num=Scaled_width)
    Scaled_Y_coordinates=np.linspace(0.0, height, num=Scaled_height)

    #rounding my positions
    Scaled_X_coordinates=np.around(Scaled_X_coordinates)
    Scaled_Y_coordinates=np.around(Scaled_Y_coordinates)

    #edited
    finalMatrix= np.zeros(shape=(np.around(Scaled_height).astype(int) ,np.around(Scaled_width).astype(int)))
    pixels=[]

    #Here, i store every pixels from the original image using the scaled coordinates
    #into an array of pixels
    for Line in Scaled_Y_coordinates.astype(int)  :
        for Column in Scaled_X_coordinates.astype(int):
            pixel = img_p[Line,Column]
            pixels.append(pixel)

    #Here i reconstruct the scaled image using the array of pixels from above
    Pixel_counter=0
    for i in range(np.around(Scaled_height).astype(int)):
        for j in range(np.around(Scaled_width).astype(int)):
            finalMatrix[i][j]=pixels[Pixel_counter]
            Pixel_counter=Pixel_counter+1

    #returning a new matrix with the same type as the given img
    return finalMatrix.astype(dtype)

Tôi không biết làm thế nào để tìm kiếm các pixel của hình ảnh gốc để tạo lại hình ảnh mới có các vị trí được chia tỷ lệ mới. Nếu có điều gì đó không rõ ràng, xin vui lòng hỏi :)

Môi trường là gì? "Môi trường bao gồm các yếu tố tự nhiên và yếu tố vật chất nhân tạo quan hệ mật thiết với nhau, bao quanh con người, có ảnh hưởng tới đời sống, sản xuất, sự tồn tại, phát triển của con người và thiên nhiên." (Theo Điều 1, Luật Bảo vệ Môi trường của Việt Nam). Môi trường sống của con người theo chức năng được chia thành các loại: •    Môi trường tự nhiên bao gồm các nhân tố thiên nhiên như vật lý, hoá học, sinh học, tồn tại ngoài ý muốn của con người, nhưng cũng ít nhiều chịu tác động của con người. Đó là ánh sáng mặt trời, núi sông, biển cả, không khí, động, thực vật, đất, nước... Môi trường tự nhiên cho ta không khí để thở, đất để xây dựng nhà cửa, trồng cấy, chăn nuôi, cung cấp cho con người các loại tài nguyên khoáng sản cần cho sản xuất, tiêu thụ và là nơi chứa đựng, đồng hoá các chất thải, cung cấp cho ta cảnh đẹp để giải trí, làm cho cuộc sống con người thêm phong phú. •    Môi trường xã hội là tổng thể các quan hệ giữa người với người. Đó là những luật lệ, thể chế, cam kết, quy định, ước định... ở các cấp khác nhau như: Liên Hợp Quốc, Hiệp hội các nước, quốc gia, tỉnh, huyện, cơ quan, làng xã, họ tộc, gia đình, tổ nhóm, các tổ chức tôn giáo, tổ chức đoàn thể,... Môi trường xã hội định hướng hoạt động của con người theo một khuôn khổ nhất định, tạo nên sức mạnh tập thể thuận lợi cho sự phát triển, làm cho cuộc sống của con người khác với các sinh vật khác. •    Ngoài ra, người ta còn phân biệt khái niệm môi trường nhân tạo, bao gồm tất cả các nhân tố do con người tạo nên, làm thành những tiện nghi trong cuộc sống, như ôtô, máy bay, nhà ở, công sở, các khu vực đô thị, công viên nhân tạo... Môi trường theo nghĩa rộng là tất cả các nhân tố tự nhiên và xã hội cần thiết cho sự sinh sống, sản xuất của con người, như tài nguyên thiên nhiên, không khí, đất, nước, ánh sáng, cảnh quan, quan hệ xã hội... Môi trường theo nghĩa hẹp không xét tới tài nguyên thiên nhiên, mà chỉ bao gồm các nhân tố tự nhiên và xã hội trực tiếp liên quan tới chất lượng cuộc sống con người. Ví dụ: môi trường của học sinh gồm nhà trường với thầy giáo, bạn bè, nội quy của trường, lớp học, sân chơi, phòng thí nghiệm, vườn trường, tổ chức xã hội như Đoàn, Đội với các điều lệ hay gia đình, họ tộc, làng xóm với những quy định không thành văn, chỉ truyền miệng nhưng vẫn được công nhận, thi hành và các cơ quan hành chính các cấp với luật pháp, nghị định, thông tư, quy định...
"Môi trường bao gồm các yếu tố tự nhiên và yếu tố vật chất nhân tạo quan hệ mật thiết với nhau, bao quanh con người, có ảnh hưởng tới đời sống, sản xuất, sự tồn tại, phát triển của con người và thiên nhiên." (Theo Điều 1, Luật Bảo vệ Môi trường của Việt Nam).
Môi trường sống của con người theo chức năng được chia thành các loại:
•    Môi trường tự nhiên bao gồm các nhân tố thiên nhiên như vật lý, hoá học, sinh học, tồn tại ngoài ý muốn của con người, nhưng cũng ít nhiều chịu tác động của con người. Đó là ánh sáng mặt trời, núi sông, biển cả, không khí, động, thực vật, đất, nước... Môi trường tự nhiên cho ta không khí để thở, đất để xây dựng nhà cửa, trồng cấy, chăn nuôi, cung cấp cho con người các loại tài nguyên khoáng sản cần cho sản xuất, tiêu thụ và là nơi chứa đựng, đồng hoá các chất thải, cung cấp cho ta cảnh đẹp để giải trí, làm cho cuộc sống con người thêm phong phú.
•    Môi trường xã hội là tổng thể các quan hệ giữa người với người. Đó là những luật lệ, thể chế, cam kết, quy định, ước định... ở các cấp khác nhau như: Liên Hợp Quốc, Hiệp hội các nước, quốc gia, tỉnh, huyện, cơ quan, làng xã, họ tộc, gia đình, tổ nhóm, các tổ chức tôn giáo, tổ chức đoàn thể,... Môi trường xã hội định hướng hoạt động của con người theo một khuôn khổ nhất định, tạo nên sức mạnh tập thể thuận lợi cho sự phát triển, làm cho cuộc sống của con người khác với các sinh vật khác.
•    Ngoài ra, người ta còn phân biệt khái niệm môi trường nhân tạo, bao gồm tất cả các nhân tố do con người tạo nên, làm thành những tiện nghi trong cuộc sống, như ôtô, máy bay, nhà ở, công sở, các khu vực đô thị, công viên nhân tạo...
Môi trường theo nghĩa rộng là tất cả các nhân tố tự nhiên và xã hội cần thiết cho sự sinh sống, sản xuất của con người, như tài nguyên thiên nhiên, không khí, đất, nước, ánh sáng, cảnh quan, quan hệ xã hội...
Môi trường theo nghĩa hẹp không xét tới tài nguyên thiên nhiên, mà chỉ bao gồm các nhân tố tự nhiên và xã hội trực tiếp liên quan tới chất lượng cuộc sống con người. Ví dụ: môi trường của học sinh gồm nhà trường với thầy giáo, bạn bè, nội quy của trường, lớp học, sân chơi, phòng thí nghiệm, vườn trường, tổ chức xã hội như Đoàn, Đội với các điều lệ hay gia đình, họ tộc, làng xóm với những quy định không thành văn, chỉ truyền miệng nhưng vẫn được công nhận, thi hành và các cơ quan hành chính các cấp với luật pháp, nghị định, thông tư, quy định...

Xem toàn bộ văn bản