Xem thảo luận Cải thiện bài viết Lưu bài viết ĐọcBàn luậnXem thảo luận Cải thiện bài viết Lưu bài viết Đọc - Bàn luận Imageio is a
Python library that provides an easy interface to read and write a wide range of image data, including animated images, video, volumetric data, and scientific formats. It is cross-platform, runs on Python 3.7+, and is easy to install. It is the recommended alternative to scipy.misc.imread and is used internally by libraries like scikit-image to load images.
Python3Python hỗ trợ các công cụ rất mạnh mẽ khi đến xử lý hình ảnh. Hãy cùng xem cách xử lý các hình ảnh bằng các thư viện khác nhau như ImageIO, OpenCV, Matplotlib, Pil, v.v. & NBSP; Sử dụng ImageIO: ImageIO là một thư viện Python cung cấp giao diện dễ dàng để đọc và viết một loạt dữ liệu hình ảnh, bao gồm hình ảnh hoạt hình, video, dữ liệu thể tích và các định dạng khoa học. Đó là nền tảng chéo, chạy trên Python 3.7+ và dễ cài đặt. Đây là giải pháp thay thế được đề xuất cho scipy.misc.imread và được sử dụng nội bộ bởi các thư viện như hình ảnh scikit để tải hình ảnh. import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
8import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
9import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y axis
plt.plot([200,300,400],[100,200,300],'c', linewidth=5)
plt.show()
0
Output:
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
1 import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
2 OpenCV (Open Source Computer Vision) is a computer vision library that contains various functions to perform operations on pictures or videos. It was originally developed by Intel but was later maintained by Willow
Garage and is now maintained by Itseez. This library is cross-platform that is it is available on multiple programming languages such as Python, C++ etc.
Python3import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
3import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
4 import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
5import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
6import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
7Sử dụng OpenCV: OpenCV (Tầm nhìn máy tính nguồn mở) là thư viện tầm nhìn máy tính chứa các chức năng khác nhau để thực hiện các hoạt động trên hình ảnh hoặc video. Nó ban đầu được phát triển bởi Intel nhưng sau đó được duy trì bởi Willow Garage và hiện được duy trì bởi Itseez. Thư viện này là nền tảng chéo, nó có sẵn trên nhiều ngôn ngữ lập trình như Python, C ++, v.v. & NBSP; & NBSP; import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y axis
plt.plot([200,300,400],[100,200,300],'c', linewidth=5)
plt.show()
8import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y axis
plt.plot([200,300,400],[100,200,300],'c', linewidth=5)
plt.show()
9import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y axis
plt.plot([200,300,400],[100,200,300],'c', linewidth=5)
plt.show()
0cv2.imwrite('watchgray.png',img)
1cv2.imwrite('watchgray.png',img)
2cv2.imwrite('watchgray.png',img)
3cv2.imwrite('watchgray.png',img)
4import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
1 import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y axis
plt.plot([200,300,400],[100,200,300],'c', linewidth=5)
plt.show()
2
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
3import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
4 import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y axis
plt.plot([200,300,400],[100,200,300],'c', linewidth=5)
plt.show()
5import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y axis
plt.plot([200,300,400],[100,200,300],'c', linewidth=5)
plt.show()
6import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
7 - Đầu ra: & nbsp; Matplotlib is an
amazing visualization library in Python for 2D plots of arrays. Matplotlib is a multi-platform data visualization library built on NumPy arrays and designed to work with the broader SciPy stack. It was introduced by John Hunter in the year 2002. Matplotlib comes with a wide variety of plots. Plots helps to understand trends, patterns, and to make correlations. They’re typically instruments for reasoning about quantitative information.
& nbsp; & nbsp; & nbsp;Sử dụng matplotlib: matplotlib là một thư viện trực quan tuyệt vời trong Python cho các lô 2D của mảng. Matplotlib là một thư viện trực quan hóa dữ liệu đa nền tảng được xây dựng trên các mảng numpy và được thiết kế để hoạt động với ngăn xếp Scipy rộng hơn. Nó được giới thiệu bởi John Hunter vào năm 2002. Matplotlib đi kèm với nhiều lô khác nhau. Các lô giúp hiểu xu hướng, mẫu và để tạo ra mối tương quan. Họ thường là các công cụ để lý luận về thông tin định lượng. & Nbsp; & nbsp; Python import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
1 cv2.imwrite('watchgray.png',img)
6import numpy as np
import cv2
cap = cv2.VideoCapture(0)
while(True):
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('frame',gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
4import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
1 import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y axis
plt.plot([200,300,400],[100,200,300],'c', linewidth=5)
plt.show()
2
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
3import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
4 import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y axis
plt.plot([200,300,400],[100,200,300],'c', linewidth=5)
plt.show()
5import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y axis
plt.plot([200,300,400],[100,200,300],'c', linewidth=5)
plt.show()
6import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
7 PIL is the Python Imaging Library which provides the python interpreter with image editing capabilities. It was developed by Fredrik Lundh and several other contributors. Pillow is the friendly PIL fork and an easy to use library developed by Alex Clark and other contributors.
Đầu ra: & nbsp;& nbsp; & nbsp; & nbsp; Sử dụng matplotlib: matplotlib là một thư viện trực quan tuyệt vời trong Python cho các lô 2D của mảng. Matplotlib là một thư viện trực quan hóa dữ liệu đa nền tảng được xây dựng trên các mảng numpy và được thiết kế để hoạt động với ngăn xếp Scipy rộng hơn. Nó được giới thiệu bởi John Hunter vào năm 2002. Matplotlib đi kèm với nhiều lô khác nhau. Các lô giúp hiểu xu hướng, mẫu và để tạo ra mối tương quan. Họ thường là các công cụ để lý luận về thông tin định lượng. & Nbsp; & nbsp; while(True):
ret, frame = cap.read()
6while(True):
ret, frame = cap.read()
7while(True):
ret, frame = cap.read()
8while(True):
ret, frame = cap.read()
9import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
7while(True):
ret, frame = cap.read()
7gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
2Python
PNG
RGBA
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
1 cv2.imwrite('watchgray.png',img)
6import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
1 cv2.imwrite('watchgray.png',img)
8import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
3import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
4 import numpy as np
import cv2
cap = cv2.VideoCapture(0)
while(True):
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('frame',gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
1import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y axis
plt.plot([200,300,400],[100,200,300],'c', linewidth=5)
plt.show()
6import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
7Sử dụng PIL: PIL là thư viện hình ảnh Python cung cấp cho trình thông dịch Python khả năng chỉnh sửa hình ảnh. Nó được phát triển bởi Fredrik Lundh và một số người đóng góp khác. Gối là Fork Fork thân thiện và là một thư viện dễ sử dụng được phát triển bởi Alex Clark và những người đóng góp khác. & NBSP; & NBSP;
Python import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
import numpy as np
import cv2
cap = cv2.VideoCapture(0)
while(True):
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('frame',gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
5 import numpy as np
import cv2
cap = cv2.VideoCapture(0)
while(True):
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('frame',gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
6import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
1 import numpy as np
import cv2
cap = cv2.VideoCapture(0)
while(True):
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('frame',gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
8import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
3import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
4 while(True):
ret, frame = cap.read()
1while(True):
ret, frame = cap.read()
22____53import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y axis
plt.plot([200,300,400],[100,200,300],'c', linewidth=5)
plt.show()
6import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
7Sau khi tải, chúng ta sử dụng cv2.imshow để hiển thị hình ảnh. Từ đây, chúng ta sử dụng cv2.waitKey (0). Khi đã xong, chúng ta sử dụng cv2.destroyAllWindows () để đóng tất cả. Như đã đề cập trước đây, bạn cũng có thể hiển thị hình ảnh với Matplotlib, dưới đây là một số mã bạn có thể làm: import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y axis
plt.plot([200,300,400],[100,200,300],'c', linewidth=5)
plt.show()
Lưu ý rằng bạn có thể vẽ các dòng, giống như bạn có thể làm với bất kỳ biểu đồ Matplotlib khác bằng cách sử dụng các vị trí pixel làm tọa độ. Nếu bạn muốn vẽ trên hình ảnh của bạn thì Matplotlib là không cần thiết. Khi bạn hoàn tất việc sửa đổi, bạn có thể lưu, như vậy: cv2.imwrite('watchgray.png',img)
Làm cách nào để tải nguồn cấp dữ liệu video? Dưới đây, tôi sẽ chỉ cách tải trong nguồn cấp dữ liệu webcam hoặc video. Trong OpenCV tôi sẽ giới thiệu một số thao tác cơ bản với video và webcam. Ngoài các dòng bắt đầu, việc xử lý khung hình từ một video giống hệt với việc xử lý hình ảnh, ví dụ: import numpy as np
import cv2
cap = cv2.VideoCapture(0)
while(True):
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('frame',gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
Đầu tiên, ta nhập numpy và cv2, tiếp theo, chúng ta lấy cap = cv2.VideoCapture (0). Thao tác này sẽ trả lại video từ webcam đầu tiên trên máy tính của bạn. while(True):
ret, frame = cap.read()
Đoạn mã này khởi tạo một vòng lặp vô hạn. Trong đó chúng ta có ret và frame được định nghĩa là cap.read (). Về cơ bản, ret là một boolean liên quan đến việc có hay không có một sự lặp lại nào, gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
Ở đây, chúng ta xác định một biến mới. Chú ý BGR2GRAY. Điều quan trọng cần lưu ý là OpenCV đọc các màu ví dụ như BGR (Blue Green Red), nơi mà hầu hết các ứng dụng máy tính đọc là RGB (Red Green Blue). cv2.imshow('frame',gray)
Mặc dù là một luồng video, chúng ta vẫn sử dụng imshow. Ở đây, ta đang hiển thị nguồn cấp dữ liệu được chuyển đổi thành màu xám. Nếu bạn muốn hiển thị cả hai cùng một lúc, bạn có thể làm imshow cho khung ban đầu, và imshow cho màu xám và hai cửa sổ sẽ xuất hiện. if cv2.waitKey(1) & 0xFF == ord('q'):
break
Câu lệnh này chỉ chạy một lần trên mỗi khung hình. Về cơ bản, nếu chúng ta lấy một khóa, và khóa đó là q, chúng ta sẽ thoát khỏi vòng lặp while với một ngắt, sau đó chạy: cap.release()
cv2.destroyAllWindows()
Giải phóng webcam này, sau đó đóng tất cả các cửa sổ imshow (). Trong một số trường hợp, bạn có thể thực sự muốn ghi lại và lưu bản ghi vào một tệp mới. thì ta làm như sau import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
0Chủ yếu cần lưu ý ở đây là codec được sử dụng và thông tin đầu ra được xác định trước vòng lặp while. Sau đó, trong vòng lặp while, chúng ta sử dụng out.write () để xuất khung. Bên ngoài vòng lặp while, sau khi chúng ta phát hành webcam của mình, thì nó cũng xuất ra. Tài liệu tham khảo: https://pythonprogramming.net/loading-images-python-opencv-tutorial/
|