Chuyển đổi hình ảnh sang python nhị phân
Tôi đã sử dụng đối số 'LA' và nhận được hình ảnh thang độ xám mà tôi đã vẽ. Tôi không biết tại sao chỉ có chữ 'L' không hoạt động khi tôi nhận được hình ảnh tối Show
Ảnh thang xám có hai chiều i. e. , hai ma trận (hàng x cột x 2). Tôi có thể vẽ nó, nó trông giống như một hình ảnh thang độ xám. Bây giờ tôi cần nhị phân hóa nó với ngưỡng và vẽ biểu đồ. Tôi biết lý thuyết nhưng không thể tìm thấy chức năng nào trong python có thể chuyển đổi hình ảnh tỷ lệ xám thành nhị phân và sau đó tạo biểu đồ của nó Một hình ảnh để chuyển đổi nhị phân
Làm thế nào để sử dụng?Chuyển đổi tệp hình ảnh thành tệp nhị phânpython image_to_binary.py YOURIMAGENAME.png Chuyển đổi tệp nhị phân thành tệp hình ảnhpython binary_to_image.py YOURBINARYFILENAME.bin câu hỏi thường gặp
Trong bài viết này, chúng ta sẽ tìm hiểu cách nhị phân hóa một hình ảnh bằng NumPy và tất nhiên, chúng ta sẽ sử dụng OpenCV để đọc hình ảnh ở cả thang độ xám và RGB Để hiểu nhị phân là gì - nhị phân là thứ được tạo thành từ hai thứ. Trong thuật ngữ máy tính, nhị phân chỉ là 0 và 1. Nếu chúng ta liên hệ giống nhau trong các hình ảnh, nó được cho là hình ảnh đen trắng trong đó -
Ở giai đoạn đầu của việc học xử lý ảnh, chúng ta thường nghĩ ảnh thang độ xám là ảnh nhị phân. Mặc dù nó không phải là. Nhưng dần dần khi chúng tôi bắt đầu chủ đề, chúng tôi nhận ra mình đã sai như thế nào. Vì vậy, tiếp tục, chúng ta sẽ tìm hiểu cách nhị phân hóa hình ảnh bằng cả việc sử dụng thư viện và không sử dụng thư viện (NumPy được sử dụng cho các hoạt động ma trận chỉ để tránh sự chậm chạp của chương trình khi sử dụng các vòng lặp for thông thường). Bên cạnh đó, chúng tôi cũng sẽ sử dụng Matplotlib để vẽ kết quả Tổng quan về RGB và thang độ xámHoạt động nhị phân hoạt động thực sự tốt cho các hình ảnh thang độ xám. Vấn đề với hình ảnh màu (RGB) là mỗi pixel là một vectơ đại diện cho 3 giá trị duy nhất, một cho Đỏ, một cho Xanh lục và một cho Xanh lam Một ma trận hình ảnh thang độ xám điển hình sẽ giống như - array([[162, 162, 162, ..., 170, 155, 128], Một ma trận hình ảnh RGB điển hình sẽ giống như - array([[[226, 137, 125], ..., [200, 99, 90]], Nếu chúng ta tách các pixel R, G và B khỏi ma trận trên. Chúng tôi nhận được ma trận R array([[226, 226, 223, ..., 230, 221, 200], ma trận G array([[137, 137, 137, ..., 148, 130, 99], ma trận B array([[125, 125, 133, ..., 122, 110, 90], Bất kỳ thao tác nào chúng ta tính toán trên hình ảnh thang độ xám, chúng ta sẽ cần tính toán tương tự trên hình ảnh RGB nhưng trong 3 lần tách các pixel R, G và B và cuối cùng hợp nhất chúng thành một hình ảnh RGB thích hợp Thời gian để viết mã Các gói mà chúng tôi chủ yếu sử dụng là -
Nhập các góiđọc hình ảnhHàm trên đọc hình ảnh ở thang độ xám hoặc RGB và trả về ma trận hình ảnh Triển khai mã với thư việnĐể chuyển đổi hình ảnh thành hình ảnh nhị phân, chúng ta chỉ cần sử dụng phương thức ngưỡng () có sẵn trong thư viện cv2. Phương pháp này, bất kể hình ảnh là gì (thang độ xám hoặc RGB) sẽ chuyển đổi thành nhị phân. Phải mất 4 đối số được sử dụng
Sau đó, chúng tôi sẽ vẽ kết quả để xem biến thể và do đó hàm bên dưới Hãy kiểm tra chức năng trên — Bây giờ chúng ta đã thấy kết quả của cả hình ảnh gốc và hình ảnh nhị phân, rõ ràng là mã thư viện hoạt động cho cả hai. Đã đến lúc làm bẩn tay chúng ta để viết mã giống nhau từ đầu Triển khai mã từ đầuĐầu tiên, chúng ta sẽ viết một hàm sẽ đánh giá lại các giá trị pixel nhỏ hơn ngưỡng đã chỉ định thành 255 Bằng cách đó, chúng ta sẽ thấy một cái gì đó như dưới đây - Chúng tôi sẽ gọi hàm trên ba lần bằng cách tách các giá trị R, G và B và cuối cùng hợp nhất giống nhau để thu được hình ảnh nhị phân. Sau khi thực hiện, chúng ta có thể vẽ kết quả giống như cách chúng ta đã làm trước đây Chúng tôi đã tạo mã nhị phân của mình chỉ bằng cách sử dụng NumPy. Hãy kiểm tra tương tự - Đây chính là nó. Bất cứ điều gì chúng tôi muốn hoàn thành, chúng tôi đã hoàn thành nó. Kết quả khá giống với kết quả chúng tôi nhận được bằng cách sử dụng mã thư viện Làm cách nào để chuyển đổi hình ảnh thành nhị phân trong Python?Nhập thư viện cần thiết. Trong tất cả các ví dụ sau, thư viện Python bắt buộc là OpenCV. . Đọc một hình ảnh đầu vào sử dụng cv2. imread(). . Bây giờ hãy chuyển đổi hình ảnh BGR này thành hình ảnh thang độ xám như bên dưới bằng cách sử dụng cv2. hàm cvtColor(). . Áp dụng ngưỡng cv2. . Hiển thị hình ảnh nhị phân đã chuyển đổi Làm cách nào để chuyển đổi hình ảnh thành nhị phân?BW = im2bw( I , level ) chuyển đổi hình ảnh thang độ xám I thành hình ảnh nhị phân BW , bằng cách thay thế tất cả các pixel trong hình ảnh đầu vào có độ sáng lớn hơn mức bằng giá trị 1 ( . Phạm vi này liên quan đến các mức tín hiệu có thể có đối với loại hình ảnh.
Làm cách nào để chuyển đổi hình ảnh RGB thành nhị phân trong Python?Làm cách nào để bạn chuyển đổi RGB sang nhị phân trong Python? . nhập numpy dưới dạng np từ numpy nhập ngẫu nhiên # Tạo một hình ảnh có giá trị từ 1 đến 255 im_thresh = ngẫu nhiên. randint(1,256, (64,64)) # Đặt giá trị nhỏ hơn 255 thành 0 # Phải thực hiện trước thao tác bên dưới để không đặt tất cả các giá trị thành 0 Làm cách nào để chuyển đổi hình ảnh thành mảng nhị phân trong Python?Để chuyển đổi hình ảnh thành hình ảnh nhị phân, chúng ta chỉ cần sử dụng phương thức ngưỡng() có sẵn trong thư viện cv2 . Phương pháp này, bất kể hình ảnh là gì (thang độ xám hoặc RGB) sẽ chuyển đổi thành nhị phân. |