Hướng dẫn how do you reshape a 3d image in python? - làm thế nào để bạn định hình lại hình ảnh 3d trong python?

4

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi có hình ảnh RGB [32 x 32 x 3] được lưu dưới dạng mảng numpy 3D mà tôi sử dụng làm đầu vào cho mạng lưới thần kinh của tôi [sử dụng tenorflow]. Để sử dụng chúng làm đầu vào, tôi định hình lại chúng thành mảng NP 1D [1 x 3072] bằng cách sử dụng định hình lại [1, -1]. Khi tôi hoàn thành việc đào tạo mạng của mình, tôi muốn định hình lại đầu ra trở lại, nhưng sử dụng định hình lại [32,32,3] dường như không cung cấp kết quả mong muốn.

Đây có phải là cách chính xác để làm điều đó? Làm thế nào tôi có thể chắc chắn rằng mỗi mốc thời gian sẽ trở lại đúng chỗ?

Đã hỏi ngày 16 tháng 5 năm 2017 lúc 18:43May 16, 2017 at 18:43

2

Nếu bạn đang tìm cách tạo một mảng 1D, hãy sử dụng .reshape [-1], sẽ tạo ra một phiên bản tuyến tính của mảng bạn. Nếu bạn sử dụng .Reshape [32,32,3], điều này sẽ tạo ra một mảng 32, 32 by-3, mảng, là định dạng ban đầu được mô tả. Sử dụng '-1' tạo ra một mảng tuyến tính có cùng kích thước với số lượng phần tử trong mảng kết hợp, lồng nhau.

Đã trả lời ngày 16 tháng 5 năm 2017 lúc 19:12May 16, 2017 at 19:12

2

Nếu M[32 x 32 x 3], thì .reshape[1,-1] sẽ tạo ra một mảng 2D [không phải 1D], có hình dạng [1, 32*32*3]. Có thể được định hình lại về [32,32,3] với cùng một câu lệnh reshape.

Nhưng đó là định hình lại đầu vào đến và đi nhưng bạn chưa nói với chúng tôi đầu ra của mạng của bạn là như thế nào. Nó có hình dạng gì? Làm thế nào bạn đang cố gắng định hình lại đầu ra, và điều gì là sai với nó?

Đã trả lời ngày 16 tháng 5 năm 2017 lúc 19:03May 16, 2017 at 19:03

Hpauljhpauljhpaulj

209K13 Huy hiệu vàng213 Huy hiệu bạc320 Huy hiệu đồng13 gold badges213 silver badges320 bronze badges

1

Nghĩa là bạn không phải chỉ định một số chính xác cho một trong các kích thước trong phương pháp định hình lại.

Vượt qua -1 là giá trị và Numpy sẽ tính toán số này cho bạn.

Thí dụ

Chuyển đổi mảng 1D với 8 phần tử thành mảng 3D với các phần tử 2x2:

Định hình lại từ 1-D đến 2-D

Thí dụ

Chuyển đổi mảng 1-D sau với 12 phần tử thành mảng 2-D.

Kích thước ngoài cùng sẽ có 4 mảng, mỗi mảng có 3 yếu tố:

nhập khẩu NUMPY dưới dạng NP

mảng = np.array [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]]]

newarr = mảng.reshape [4, 3]

print[newarr]

Hãy tự mình thử »

Định hình lại từ 1-D đến 3-D

Thí dụ

Chuyển đổi mảng 1-D sau với 12 phần tử thành mảng 2-D.

Kích thước ngoài cùng sẽ có 4 mảng, mỗi mảng có 3 yếu tố:

nhập khẩu NUMPY dưới dạng NP

mảng = np.array [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]]]

newarr = mảng.reshape [4, 3]

print[newarr]

Hãy tự mình thử »

Định hình lại từ 1-D đến 3-D

Chuyển đổi mảng 1-D sau với 12 phần tử thành mảng 3-D.

Chúng ta có thể định hình lại một mảng 8 phần tử 1D thành 4 phần tử trong 2 hàng 2D nhưng chúng ta không thể định hình lại nó thành một mảng 2 phần 3 của 3 phần tử vì điều đó yêu cầu 3x3 = 9 phần tử.

Thí dụ

Hãy thử chuyển đổi mảng 1D với 8 phần tử thành mảng 2D với 3 phần tử trong mỗi chiều [sẽ gây ra lỗi]:

nhập khẩu NUMPY dưới dạng NP

mảng = np.array [[1, 2, 3, 4, 5, 6, 7, 8]]]

newarr = mảng.reshape [3, 3]

print[newarr]

Hãy tự mình thử »

Trả về bản sao hoặc xem?

Thí dụ

Hãy thử chuyển đổi mảng 1D với 8 phần tử thành mảng 2D với 3 phần tử trong mỗi chiều [sẽ gây ra lỗi]:

nhập khẩu NUMPY dưới dạng NP

mảng = np.array [[1, 2, 3, 4, 5, 6, 7, 8]]]

newarr = mảng.reshape [3, 3]

Hãy tự mình thử »

Trả về bản sao hoặc xem?

Kiểm tra xem mảng được trả về là một bản sao hoặc chế độ xem:

in [Arr.Reshape [2, 4] .base]

Ví dụ trên trả về mảng ban đầu, vì vậy nó là một chế độ xem.

Chiều không xác định

Bạn được phép có một chiều "không xác định".

Nghĩa là bạn không phải chỉ định một số chính xác cho một trong các kích thước trong phương pháp định hình lại.

nhập khẩu NUMPY dưới dạng NP

mảng = np.array [[1, 2, 3, 4, 5, 6, 7, 8]]]

newarr = mảng.reshape [3, 3]

print[newarr]

Hãy tự mình thử »

Trả về bản sao hoặc xem? We can not pass -1 to more than one dimension.

Kiểm tra xem mảng được trả về là một bản sao hoặc chế độ xem:

in [Arr.Reshape [2, 4] .base]

Ví dụ trên trả về mảng ban đầu, vì vậy nó là một chế độ xem.

Thí dụ

Chiều không xác định

nhập khẩu NUMPY dưới dạng NP

mảng = np.array [[1, 2, 3, 4, 5, 6, 7, 8]]]

newarr = mảng.reshape [3, 3]

print[newarr]

Hãy tự mình thử »

Trả về bản sao hoặc xem? There are a lot of functions for changing the shapes of arrays in numpy flatten, M0 and also for rearranging the elements M1, M2, M3, M4 etc. These fall under Intermediate to Advanced section of numpy.

Kiểm tra xem mảng được trả về là một bản sao hoặc chế độ xem:

Exercise:

in [Arr.Reshape [2, 4] .base]

Ví dụ trên trả về mảng ban đầu, vì vậy nó là một chế độ xem.

Chiều không xác định


Làm thế nào để bạn định hình lại một hình ảnh trong Python?

Để thay đổi kích thước hình ảnh trong Python, bạn có thể sử dụng hàm cv2.Resize [] của thư viện OpenCV CV2. Thay đổi kích thước, theo mặc định, chỉ thay đổi chiều rộng và chiều cao của hình ảnh. Tỷ lệ khung hình có thể được bảo tồn hay không, dựa trên yêu cầu.use cv2. resize[] function of OpenCV library cv2. Resizing, by default, does only change the width and height of the image. The aspect ratio can be preserved or not, based on the requirement.

Làm thế nào để bạn định hình lại 3D đến 1D trong Python?

Nếu bạn đang tìm cách tạo một mảng 1D, hãy sử dụng .reshape [-1], sẽ tạo ra một phiên bản tuyến tính của mảng bạn.Nếu bạn sử dụng.Reshape [32,32,3], điều này sẽ tạo ra một mảng 32, 32 by-3, mảng, là định dạng ban đầu được mô tả.use . reshape[-1], which will create a linear version of you array. If you the use . reshape[32,32,3], this will create an array of 32, 32-by-3, arrays, which is the original format described.

Làm thế nào để bạn định hình lại kích thước trong Python?

Để định hình lại một mảng numpy, chúng tôi sử dụng phương pháp định hình lại với mảng đã cho ...
Cú pháp: Array.Reshape [hình dạng].
Đối số: Nó lấy Tuple như một đối số, Tuple là hình dạng mới được hình thành ..
Trả lại: nó trả về numpy.ndarray ..

Tại sao chúng ta lại làm lại [

Nếu bạn có một mảng hình dạng [2,4] thì việc định hình lại nó bằng [-1, 1], thì mảng sẽ được định hình lại theo cách mà mảng kết quả chỉ có 1 cột và điều này chỉ có thể bằng cách có 8 hàng, do đó, [8,1].the resulting array has only 1 column and this is only possible by having 8 rows, hence, [8,1].

Bài Viết Liên Quan

Chủ Đề