Hướng dẫn how do you clone an image in python? - làm thế nào để bạn sao chép một hình ảnh trong python?

77

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 chưa quen với OpenCV, đây là một câu hỏi, hàm Python hoạt động giống như CV :: Clone [] trong CPP là gì? Tôi chỉ cố gắng để có được một trực tràng bởi

    rectImg = img[10:20, 10:20]

Nhưng khi tôi vẽ một dòng trên đó, tôi thấy dòng xuất hiện cả trên IMG và trực tràng, vì vậy, làm thế nào tôi có thể hoàn thành việc này?

Đã hỏi ngày 14 tháng 5 năm 2013 lúc 0:05May 14, 2013 at 0:05

Câu trả lời đầu tiên là chính xác nhưng bạn nói rằng bạn đang sử dụng CV2 vốn sử dụng các mảng Numpy. Vì vậy, để tạo một bản sao hoàn chỉnh của Say "MyImage":

newImage = myImage.copy[]

Trên đây là đủ. Không cần phải nhập khẩu numpy.

Đã trả lời ngày 27 tháng 2 năm 2016 lúc 7:22Feb 27, 2016 at 7:22

Ash Ketchumash KetchumAsh Ketchum

1.7801 Huy hiệu vàng11 Huy hiệu bạc 6 Huy hiệu Đồng1 gold badge11 silver badges6 bronze badges

Nếu bạn sử dụng cv2, phương pháp chính xác là sử dụng phương thức .copy[] trong Numpy. Nó sẽ tạo ra một bản sao của mảng bạn cần. Nếu không, nó sẽ chỉ tạo ra một cái nhìn của đối tượng đó.

eg:

In [1]: import numpy as np

In [2]: x = np.arange[10*10].reshape[[10,10]]

In [4]: y = x[3:7,3:7].copy[]

In [6]: y[2,2] = 1000

In [8]: 1000 in x
Out[8]: False     # see, 1000 in y doesn't change values in x, parent array.

Đã trả lời ngày 14 tháng 5 năm 2013 lúc 5:01May 14, 2013 at 5:01

Abid Rahman Kabid Rahman KAbid Rahman K

50.9K29 Huy hiệu vàng145 Huy hiệu bạc155 Huy hiệu đồng29 gold badges145 silver badges155 bronze badges

1

Sử dụng Python 3 và OpenCV-Python phiên bản 4.4.0, mã sau sẽ hoạt động:

img_src = cv2.imread['image.png']
img_clone = img_src.copy[]

BSMP

4.3968 Huy hiệu vàng34 Huy hiệu bạc43 Huy hiệu đồng8 gold badges34 silver badges43 bronze badges

Đã trả lời ngày 13 tháng 10 năm 2020 lúc 16:18Oct 13, 2020 at 16:18

2

Bạn chỉ có thể sử dụng thư viện tiêu chuẩn Python. Tạo một bản sao nông của hình ảnh gốc như sau:

import copy

original_img = cv2.imread["foo.jpg"]
clone_img = copy.copy[original_img]

Đã trả lời ngày 21 tháng 4 năm 2015 lúc 14:00Apr 21, 2015 at 14:00

Yildirimyildirimyildirim

3167 Huy hiệu bạc14 Huy hiệu Đồng7 silver badges14 bronze badges

1

Phương pháp yêu thích của tôi sử dụng CV2.copymakeborborder không có biên giới, như vậy.

copy = cv2.copyMakeBorder[original,0,0,0,0,cv2.BORDER_REPLICATE]

Đã trả lời ngày 14 tháng 5 năm 2015 lúc 0:32May 14, 2015 at 0:32

Jack Guyjack GuyJack Guy

8.0368 Huy hiệu vàng52 Huy hiệu bạc83 Huy hiệu Đồng8 gold badges52 silver badges83 bronze badges

1

Trong bài viết này, chúng tôi chỉ ra cách tạo một bản sao của một hình ảnh trong Python bằng mô -đun Numpy.

Nếu bạn sẽ sửa đổi một hình ảnh và bạn muốn giữ nguyên hình ảnh gốc [có nghĩa là không được sửa đổi], thì bạn phải tạo một bản sao của hình ảnh gốc. Khi bạn tạo một bản sao của hình ảnh gốc và sửa đổi bản sao này, nó không ảnh hưởng đến hình ảnh gốc.

Vậy làm thế nào bạn có thể tạo một bản sao của một hình ảnh?

Một cách có thể được thực hiện là thông qua hàm COPY [] của mô -đun Numpy.

WTIH hàm COPY [] và truyền vào đó hình ảnh bạn muốn sao chép, một bản sao sẽ được thực hiện.

Điều này được hiển thị trong mã dưới đây.

Chúng tôi sử dụng mô -đun OpenCV để đọc trong một hình ảnh. Vì vậy, chúng tôi nhập CV2 cho OpenCV.

Vì vậy, bây giờ chúng tôi sẽ đi qua mã.

Điều đầu tiên chúng ta phải làm là nhập các mô -đun chúng ta cần để thực hiện và hiển thị một bản sao, trong trường hợp này, là các mô -đun OpenCV và Numpy.

Sau này, chúng tôi đọc trong hình ảnh bằng hàm cv2.imread []. Nếu hình ảnh được đặt trong thư mục làm việc hiện tại, thì bạn chỉ cần chỉ định tên tệp. Nếu hình ảnh không nằm trong thư mục làm việc hiện tại, thì bạn phải chỉ định đường dẫn đến tệp. Hình ảnh này được lưu trữ trong biến, hình ảnh.

Sau đó, chúng tôi tạo một biến khác, ImageCopy, mà chúng tôi đặt bằng, np.copy [hình ảnh].

Hàm np.copy [] cho phép chúng tôi tạo một bản sao của hình ảnh. Bản sao này hiện được lưu trữ trong biến, ImageCopy.

Bây giờ nếu bạn sử dụng hàm imshow [] để hiển thị hình ảnh của bản sao của hình ảnh gốc, nó sẽ hiển thị, chứng minh rằng một bản sao chính xác của hình ảnh đã được thực hiện.

Bây giờ nếu bạn thực hiện bất kỳ sửa đổi nào cho bản sao này của hình ảnh, nó sẽ không ảnh hưởng đến hình ảnh gốc, bởi vì nó hoàn toàn riêng biệt.

Và đây là cách tạo một bản sao của một hình ảnh trong Python bằng mô -đun Numpy.

Tài nguyên liên quan

Chức năng nào được sử dụng để sao chép hình ảnh với mặt nạ trong Python?

Nếu bạn sử dụng CV2, phương thức chính xác là sử dụng phương thức .Copy [] trong Numpy.Nó sẽ tạo ra một bản sao của mảng bạn cần.Nếu không, nó sẽ chỉ tạo ra một cái nhìn của đối tượng đó.. copy[] method in Numpy. It will create a copy of the array you need. Otherwise it will produce only a view of that object.

Làm cách nào để sao chép hình ảnh trên CV2?

Sử dụng Numpy ...
hình ảnh = np.Arange [3 * 3].Đổi lại [[3, 3]].
print[image].
copy_image = hình ảnh.Sao chép [].
print[copy_image].

Chức năng nào được sử dụng để sao chép hình ảnh với mặt nạ?

Hàm Copyto [] không xóa đầu ra trước khi sao chép.Nếu bạn muốn thay đổi vĩnh viễn hình ảnh gốc, bạn phải thực hiện một bản sao/bản sao/bài tập bổ sung.Hàm Copyto [] không được xác định cho hình ảnh đầu vào/đầu ra chồng chéo.Vì vậy, bạn không thể sử dụng cùng một hình ảnh với cả đầu vào và đầu ra. function does not clear the output before copying. If you want to permanently alter the original Image, you have to do an additional copy/clone/assignment. The copyTo[] function is not defined for overlapping input/output images. So you can't use the same image as both input and output.

CV2 bitwise_and là gì?

CV2.bitwise_and [] là một hàm thực hiện bitwise và xử lý như tên gợi ý.Các giá trị cho mỗi pixel của hình ảnh đầu vào SRC1 và SRC2 là giá trị pixel của hình ảnh đầu ra.Các toán tử bitwise trong python [và, hoặc, xor, không, thay đổi]a function that performs bitwise AND processing as the name suggests. The AND of the values for each pixel of the input images src1 and src2 is the pixel value of the output image. Bitwise operators in Python [AND, OR, XOR, NOT, SHIFT]

Bài Viết Liên Quan

Chủ Đề