Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Đọc
Bàn luận
- Trong bài viết này, chúng tôi sẽ sử dụng xử lý hình ảnh để đếm số lượng đối tượng sử dụng OpenCV trong Python.: OpenCv is an open-source library that is useful for computer vision applications such as image processing, video processing, facial recognition, and detection, etc.
- Mô -đun cần thiết: Numpy is a python package for scientific computing. It is a popular math library for Machine Learning. The main Object of Numpy is a multidimensional array.
- OpenCV: OpenCV là một thư viện nguồn mở hữu ích cho các ứng dụng tầm nhìn máy tính như xử lý hình ảnh, xử lý video, nhận dạng khuôn mặt và phát hiện, v.v.: Matplotlib is a Python library used for data visualization and graphical plotting of the data.
Numpy: Numpy là một gói Python cho điện toán khoa học. Nó là một thư viện toán học phổ biến cho học máy. Đối tượng chính của Numpy là một mảng đa chiều.
Matplotlib: Matplotlib là một thư viện Python được sử dụng để trực quan hóa dữ liệu và vẽ đồ họa của dữ liệu.
Hình ảnh được sử dụng:.Import required libraries.
Python3
Thực hiện từng bước
Bước 1: Nhập thư viện yêu cầu. & NBSP;
import
cv2
import
numpy as np
We will read the image by using “cv2.imread[image-name]” command & then convert this image into grayscale image using “cv2.cvtColor[image-name, cv2.COLOR_BGR2GRAY]” command.
Python3
import
matplotlib.pyplot as plt
Bước 2: Chúng tôi sẽ đọc hình ảnh bằng cách sử dụng lệnh cv2.imread [tên hình ảnh] và sau đó chuyển đổi hình ảnh này thành hình ảnh thang độ xám bằng lệnh CV2.cvtcolor [tên hình ảnh, cv2.color_bgr2gray].
coins in the image : 56
=
coins in the image : 58
coins in the image : 52
Output:
image
=
coins in the image : 5
0coins in the image : 5
1coins in the image : 5
2For counting, we have to detect the edges but before detecting the edges we have to make the image blur to avoid the noises. Use “cv2.GaussianBlur[image-name, Kernal size, std. deviation]”.
Python3
coins in the image : 53
=
coins in the image : 55
import
9=
coins in the image : 58
coins in the image : 52
Output:
Bước 3: Để đếm, chúng ta phải phát hiện các cạnh nhưng trước khi phát hiện các cạnh, chúng ta phải làm cho hình ảnh mờ để tránh tiếng ồn. Sử dụng CV2.gaussianblur [tên hình ảnh, kích thước kernal, std. Độ lệch]. & NBSP; Now we will detect edges using a canny algorithm, 2nd & 3rd parameters in cv2.canny[] function are threshold values. a value between 30 & 150 are consider as an edge for this image.
Python3
import
0____9 import
2import
3import
4import
3import
6import
7
coins in the image : 52
import
2=
coins in the image : 58
coins in the image : 52
Output:
Bước 4: & NBSP; Bây giờ chúng tôi sẽ phát hiện các cạnh bằng thuật toán Canny, tham số 2 & 3 trong hàm cv2.canny [] là các giá trị ngưỡng. Một giá trị giữa 30 & 150 được coi là một cạnh cho hình ảnh này.We can see that edges are not connected. We need to connect the edges, have to make more thiker & visible.
Python3
cv2
3=
cv2
5cv2
6import
4cv2
8import
4import
0
coins in the image : 52
numpy as np
6=
coins in the image : 58
coins in the image : 52
Output:
Bước 5: Chúng ta có thể thấy rằng các cạnh không được kết nối. Chúng ta cần kết nối các cạnh, phải làm cho Thiker & Hise có thể nhìn thấy nhiều hơn. & NBSP;Now we have to calculate the contour in the image & convert the image into RGB from BGR & then draw the contours.
Python3
import
6=
import
8import
9import
4import
9__522
import
3import
4
Bước 6: Bây giờ chúng ta phải tính toán đường viền trong hình ảnh và chuyển đổi hình ảnh thành RGB từ BGR và sau đó vẽ các đường viền.
import
8import
9import
9matplotlib.pyplot as plt
1import
7import
4matplotlib.pyplot as plt
4import
4import
7import
6matplotlib.pyplot as plt
8
coins in the image : 52
image
0
Output:
import
0____9 import
2Printing the result
Python3
image
1image
2image
3import
4image
5image
6
Output:
coins in the image: 5
import
5=
import
7
Python3
Thực hiện từng bước
Bước 1: Nhập thư viện yêu cầu. & NBSP;
import
cv2
import
matplotlib.pyplot as plt
Bước 2: Chúng tôi sẽ đọc hình ảnh bằng cách sử dụng lệnh cv2.imread [tên hình ảnh] và sau đó chuyển đổi hình ảnh này thành hình ảnh thang độ xám bằng lệnh CV2.cvtcolor [tên hình ảnh, cv2.color_bgr2gray].
coins in the image : 53
=
coins in the image : 55
import
0____9 import
2import
3import
4import
3import
6import
7
coins in the image : 52
cv2
3=
cv2
5cv2
6import
4cv2
8import
4import
0
coins in the image : 52
import
6=
import
8import
9import
4import
9__522
import
3import
4
Bước 6: Bây giờ chúng ta phải tính toán đường viền trong hình ảnh và chuyển đổi hình ảnh thành RGB từ BGR và sau đó vẽ các đường viền.
import
8import
9import
9matplotlib.pyplot as plt
1import
7import
4matplotlib.pyplot as plt
4import
4import
7import
6matplotlib.pyplot as plt
8
coins in the image : 52
image
1image
2image
3import
4image
5image
6
Output:
coins in the image : 5