Hướng dẫn apply a mask to an image python - áp dụng mặt nạ cho trăn hình ảnh

import cv2 as cv

im_color = cv.imread("lena.png", cv.IMREAD_COLOR)
im_gray = cv.cvtColor(im_color, cv.COLOR_BGR2GRAY)

Tại thời điểm này, bạn có một màu sắc và hình ảnh màu xám. Chúng tôi đang xử lý các hình ảnh

_, mask = cv.threshold(im_gray, thresh=180, maxval=255, type=cv.THRESH_BINARY)
im_thresh_gray = cv.bitwise_and(im_gray, mask)
1,
_, mask = cv.threshold(im_gray, thresh=180, maxval=255, type=cv.THRESH_BINARY)
im_thresh_gray = cv.bitwise_and(im_gray, mask)
2 ở đây. Điều đó có nghĩa là hình ảnh có thể có các giá trị pixel trong phạm vi
_, mask = cv.threshold(im_gray, thresh=180, maxval=255, type=cv.THRESH_BINARY)
im_thresh_gray = cv.bitwise_and(im_gray, mask)
3 và các giá trị phải là số nguyên.

Hướng dẫn apply a mask to an image python - áp dụng mặt nạ cho trăn hình ảnh

Hãy thực hiện một hoạt động ngưỡng nhị phân. Nó tạo ra một hình ảnh đeo mặt nạ đen và trắng. Các vùng màu đen có giá trị

_, mask = cv.threshold(im_gray, thresh=180, maxval=255, type=cv.THRESH_BINARY)
im_thresh_gray = cv.bitwise_and(im_gray, mask)
4 và các vùng trắng
_, mask = cv.threshold(im_gray, thresh=180, maxval=255, type=cv.THRESH_BINARY)
im_thresh_gray = cv.bitwise_and(im_gray, mask)
5

_, mask = cv.threshold(im_gray, thresh=180, maxval=255, type=cv.THRESH_BINARY)
im_thresh_gray = cv.bitwise_and(im_gray, mask)

Mặt nạ có thể được nhìn thấy bên dưới bên trái. Hình ảnh bên phải của nó là kết quả của việc áp dụng hoạt động

_, mask = cv.threshold(im_gray, thresh=180, maxval=255, type=cv.THRESH_BINARY)
im_thresh_gray = cv.bitwise_and(im_gray, mask)
6 giữa hình ảnh màu xám và mặt nạ. Điều xảy ra là, các vị trí không gian nơi mặt nạ có giá trị pixel bằng không (màu đen), trở thành giá trị pixel bằng không trong hình ảnh kết quả. Các vị trí mà mặt nạ có giá trị pixel 255 (màu trắng), hình ảnh kết quả vẫn giữ được giá trị màu xám ban đầu của nó.

Hướng dẫn apply a mask to an image python - áp dụng mặt nạ cho trăn hình ảnh

Để áp dụng mặt nạ này vào hình ảnh màu ban đầu của chúng tôi, chúng tôi cần chuyển đổi mặt nạ thành hình ảnh 3 kênh vì hình ảnh màu gốc là hình ảnh 3 kênh.

mask3 = cv.cvtColor(mask, cv.COLOR_GRAY2BGR)  # 3 channel mask

Sau đó, chúng tôi có thể áp dụng mặt nạ 3 kênh này vào hình ảnh màu của chúng tôi bằng cách sử dụng cùng một hàm

_, mask = cv.threshold(im_gray, thresh=180, maxval=255, type=cv.THRESH_BINARY)
im_thresh_gray = cv.bitwise_and(im_gray, mask)
6.

im_thresh_color = cv.bitwise_and(im_color, mask3)

_, mask = cv.threshold(im_gray, thresh=180, maxval=255, type=cv.THRESH_BINARY)
im_thresh_gray = cv.bitwise_and(im_gray, mask)
8 Từ mã là hình ảnh bên dưới bên trái và
_, mask = cv.threshold(im_gray, thresh=180, maxval=255, type=cv.THRESH_BINARY)
im_thresh_gray = cv.bitwise_and(im_gray, mask)
9 ở bên phải của nó.

Hướng dẫn apply a mask to an image python - áp dụng mặt nạ cho trăn hình ảnh

Bạn có thể vẽ kết quả và xem cho chính mình.

cv.imshow("original image", im_color)
cv.imshow("binary mask", mask)
cv.imshow("3 channel mask", mask3)
cv.imshow("im_thresh_gray", im_thresh_gray)
cv.imshow("im_thresh_color", im_thresh_color)
cv.waitKey(0)

Hình ảnh gốc là

mask3 = cv.cvtColor(mask, cv.COLOR_GRAY2BGR)  # 3 channel mask
0 mà tôi tìm thấy ở đây.

Trong hướng dẫn này, bạn sẽ học cách che dấu hình ảnh bằng OpenCV.

Hướng dẫn apply a mask to an image python - áp dụng mặt nạ cho trăn hình ảnh

Hướng dẫn trước đây của tôi đã thảo luận về các hoạt động bitwise, một bộ kỹ thuật rất phổ biến được sử dụng rất nhiều trong xử lý hình ảnh.

Và như tôi đã gợi ý trước đây, chúng ta có thể sử dụng cả các hoạt động và mặt nạ bitwise để xây dựng các ROI không phải là gốc. Điều này cho phép chúng tôi trích xuất các vùng từ hình ảnh có hình dạng hoàn toàn tùy ý.

Đơn giản thôi; Một mặt nạ cho phép chúng ta chỉ tập trung vào các phần của hình ảnh mà chúng ta quan tâm.

Ví dụ, hãy để nói rằng chúng tôi đã xây dựng một hệ thống tầm nhìn máy tính để nhận ra khuôn mặt. Phần duy nhất của hình ảnh chúng tôi quan tâm đến việc tìm kiếm và mô tả là các phần của hình ảnh chứa khuôn mặt - chúng tôi chỉ đơn giản là không quan tâm đến phần còn lại của nội dung hình ảnh. Với điều kiện là chúng ta có thể tìm thấy các khuôn mặt trong hình ảnh, chúng ta có thể xây dựng một mặt nạ để chỉ hiển thị các khuôn mặt trong hình ảnh.Provided that we could find the faces in the image, we may construct a mask to show only the faces in the image.

Một ứng dụng mặt nạ khác mà bạn gặp phải là sự pha trộn và minh bạch alpha (ví dụ: trong hướng dẫn này về việc tạo GIF với openCV). Khi áp dụng tính minh bạch cho hình ảnh với OpenCV, chúng ta cần nói OpenCV những phần nào của độ trong suốt hình ảnh nên được áp dụng cho so với không - mặt nạ cho phép chúng ta tạo ra sự khác biệt đó.

Để tìm hiểu cách thực hiện mặt nạ hình ảnh với OpenCV, chỉ cần tiếp tục đọc.

Trong phần đầu tiên của hướng dẫn này, chúng tôi sẽ định cấu hình môi trường phát triển của chúng tôi và xem xét cấu trúc dự án của chúng tôi.

Sau đó, chúng tôi sẽ thực hiện một tập lệnh Python để che dấu hình ảnh với OpenCV.

Định cấu hình môi trường phát triển của bạn

Để làm theo hướng dẫn này, bạn cần cài đặt thư viện OpenCV trên hệ thống của bạn.

May mắn thay, OpenCV không thể cài đặt được:

$ pip install opencv-contrib-python

Nếu bạn cần trợ giúp định cấu hình môi trường phát triển của mình cho OpenCV, tôi khuyên bạn nên đọc hướng dẫn OpenCV cài đặt PIP của tôi - nó sẽ giúp bạn và chạy trong vài phút.pip install OpenCV guide — it will have you up and running in a matter of minutes.

Có vấn đề cấu hình môi trường phát triển của bạn?

Hướng dẫn apply a mask to an image python - áp dụng mặt nạ cho trăn hình ảnh
Hình 1: Gặp khó khăn trong việc cấu hình môi trường phát triển của bạn? Bạn muốn truy cập vào các máy tính xách tay Jupyter được cấu hình sẵn chạy trên Google Colab? Hãy chắc chắn tham gia PyimageSearch Plus - bạn sẽ lên và chạy với hướng dẫn này trong vài phút.Having trouble configuring your development environment? Want access to pre-configured Jupyter Notebooks running on Google Colab? Be sure to join PyImageSearch Plus — you will be up and running with this tutorial in a matter of minutes.

Tất cả những gì đã nói, là bạn:

  • Ngắn gọn về thời gian?
  • Học trên hệ thống bị khóa hành chính của nhà tuyển dụng?
  • Muốn bỏ qua những rắc rối khi chiến đấu với dòng lệnh, người quản lý gói và môi trường ảo?
  • Sẵn sàng để chạy mã ngay bây giờ trên các hệ thống Windows, MacOS hoặc Linux của bạn?

Sau đó tham gia PyimageSearch Plus ngay hôm nay!

Có quyền truy cập vào các máy tính xách tay Jupyter cho hướng dẫn này và các hướng dẫn PyimageSearch khác được cấu hình sẵn để chạy trên hệ sinh thái Google Colab, ngay trong trình duyệt web của bạn! Không cần cài đặt. No installation required.

Và tốt nhất, những máy tính xách tay Jupyter này sẽ chạy trên Windows, MacOS và Linux!

Cấu trúc dự án

Thực hiện mặt nạ hình ảnh với OpenCV dễ dàng hơn bạn nghĩ. Nhưng trước khi chúng tôi viết bất kỳ mã nào, trước tiên hãy xem xét cấu trúc thư mục dự án của chúng tôi.

Bắt đầu bằng cách sử dụng phần Tải xuống của Hướng dẫn này trong hướng dẫn này để truy cập mã nguồn và hình ảnh ví dụ.“Downloads” section of this guide to access the source code and example image.

Thư mục dự án của bạn sẽ trông giống như sau:

$ tree . --dirsfirst
.
├── adrian.png
└── opencv_masking.py

0 directories, 2 files

Tập lệnh

mask3 = cv.cvtColor(mask, cv.COLOR_GRAY2BGR)  # 3 channel mask
1 của chúng tôi sẽ tải hình ảnh đầu vào ____22 từ đĩa. Sau đó, chúng tôi sử dụng mặt nạ để trích xuất cả cơ thể và mặt từ hình ảnh bằng cách sử dụng mặt nạ hình chữ nhật và hình tròn tương ứng.

Thực hiện mặt nạ hình ảnh với OpenCV

Hãy cùng học cách áp dụng mặt nạ hình ảnh bằng OpenCV!

Mở tệp

mask3 = cv.cvtColor(mask, cv.COLOR_GRAY2BGR)  # 3 channel mask
1 trong cấu trúc thư mục dự án của bạn và hãy để Lừa làm việc:

# import the necessary packages
import numpy as np
import argparse
import cv2

# construct the argument parser and parse the arguments
ap = argparse.ArgumentParser()
ap.add_argument("-i", "--image", type=str, default="adrian.png",
	help="path to the input image")
args = vars(ap.parse_args())

Dòng 2-4 Nhập các gói Python yêu cầu của chúng tôi. Sau đó, chúng tôi phân tích các đối số dòng lệnh của chúng tôi trên các dòng 7-10. import our required Python packages. We then parse our command line arguments on Lines 7-10.

Chúng ta chỉ cần một công tắc duy nhất ở đây,

mask3 = cv.cvtColor(mask, cv.COLOR_GRAY2BGR)  # 3 channel mask
4, đó là đường dẫn đến hình ảnh chúng ta muốn che dấu. Chúng tôi tiếp tục và mặc định đối số
mask3 = cv.cvtColor(mask, cv.COLOR_GRAY2BGR)  # 3 channel mask
4 cho tệp
mask3 = cv.cvtColor(mask, cv.COLOR_GRAY2BGR)  # 3 channel mask
2 trong thư mục dự án của chúng tôi.

Bây giờ hãy tải hình ảnh này từ đĩa và thực hiện mặt nạ:

# load the original input image and display it to our screen
image = cv2.imread(args["image"])
cv2.imshow("Original", image)

# a mask is the same size as our image, but has only two pixel
# values, 0 and 255 -- pixels with a value of 0 (background) are
# ignored in the original image while mask pixels with a value of
# 255 (foreground) are allowed to be kept
mask = np.zeros(image.shape[:2], dtype="uint8")
cv2.rectangle(mask, (0, 90), (290, 450), 255, -1)
cv2.imshow("Rectangular Mask", mask)

# apply our mask -- notice how only the person in the image is
# cropped out
masked = cv2.bitwise_and(image, image, mask=mask)
cv2.imshow("Mask Applied to Image", masked)
cv2.waitKey(0)

Các dòng 13 và 14 Tải

mask3 = cv.cvtColor(mask, cv.COLOR_GRAY2BGR)  # 3 channel mask
7 gốc từ đĩa và hiển thị nó lên màn hình của chúng tôi: load the original
mask3 = cv.cvtColor(mask, cv.COLOR_GRAY2BGR)  # 3 channel mask
7 from disk and display it to our screen:

Hướng dẫn apply a mask to an image python - áp dụng mặt nạ cho trăn hình ảnh
Hình 2: Tải hình ảnh đầu vào của chúng tôi từ đĩa. Loading our input image from disk.

Sau đó, chúng tôi xây dựng một mảng numpy, chứa đầy số không, với cùng chiều rộng và chiều cao với hình ảnh gốc của chúng tôi trên dòng 20.Line 20.

Như tôi đã đề cập trong hướng dẫn trước đây của chúng tôi về cắt hình ảnh với OpenCV, chúng tôi có thể sử dụng các phương thức phát hiện đối tượng để tự động phát hiện các đối tượng/người trong hình ảnh. Tuy nhiên, chúng tôi sẽ sử dụng kiến ​​thức tiên nghiệm của chúng tôi về hình ảnh ví dụ của chúng tôi cho thời điểm hiện tại.

Chúng tôi biết rằng khu vực chúng tôi muốn trích xuất ở góc dưới bên trái hình ảnh. Dòng 21 vẽ một hình chữ nhật màu trắng trên mặt nạ của chúng tôi, tương ứng với khu vực chúng tôi muốn trích xuất từ ​​hình ảnh gốc của chúng tôi.Line 21 draws a white rectangle on our mask, which corresponds to the region we want to extract from our original image.

Bạn có nhớ xem xét chức năng

mask3 = cv.cvtColor(mask, cv.COLOR_GRAY2BGR)  # 3 channel mask
8 trong hướng dẫn hoạt động bitwise của chúng tôi không? Nó chỉ ra rằng chức năng này được sử dụng rộng rãi khi áp dụng mặt nạ vào hình ảnh.

Chúng tôi áp dụng mặt nạ của chúng tôi trên dòng 26 bằng hàm

mask3 = cv.cvtColor(mask, cv.COLOR_GRAY2BGR)  # 3 channel mask
8.Line 26 using the
mask3 = cv.cvtColor(mask, cv.COLOR_GRAY2BGR)  # 3 channel mask
8 function.

Hai tham số đầu tiên là chính

mask3 = cv.cvtColor(mask, cv.COLOR_GRAY2BGR)  # 3 channel mask
7 (nghĩa là, hình ảnh mà chúng tôi muốn áp dụng thao tác bitwise).

Tuy nhiên, phần quan trọng của hàm này là từ khóa

im_thresh_color = cv.bitwise_and(im_color, mask3)
1. Khi được cung cấp, hàm
_, mask = cv.threshold(im_gray, thresh=180, maxval=255, type=cv.THRESH_BINARY)
im_thresh_gray = cv.bitwise_and(im_gray, mask)
6 là
im_thresh_color = cv.bitwise_and(im_color, mask3)
3 khi các giá trị pixel của hình ảnh đầu vào bằng nhau và mặt nạ khác không ở mỗi (x, y) -Coordinate (trong trường hợp này, chỉ có pixel là một phần của hình chữ nhật màu trắng) .

Sau khi áp dụng mặt nạ của chúng tôi, chúng tôi hiển thị đầu ra trên các dòng 27 và 28, mà bạn có thể thấy trong Hình 3:Lines 27 and 28, which you can see in Figure 3:

Hướng dẫn apply a mask to an image python - áp dụng mặt nạ cho trăn hình ảnh
Hình 3: Trái: Xây dựng mặt nạ hình chữ nhật. Phải: Áp dụng mặt nạ hình chữ nhật cho hình ảnh với OpenCV. Left: Constructing a rectangular mask. Right: Applying the rectangular mask to the image with OpenCV.

Sử dụng mặt nạ hình chữ nhật của chúng tôi, chúng tôi chỉ có thể trích xuất vùng của hình ảnh có chứa người đó và bỏ qua phần còn lại.

Chúng ta hãy nhìn vào một ví dụ khác, nhưng lần này bằng cách sử dụng mặt nạ không có gốc:

# now, let's make a circular mask with a radius of 100 pixels and
# apply the mask again
mask = np.zeros(image.shape[:2], dtype="uint8")
cv2.circle(mask, (145, 200), 100, 255, -1)
masked = cv2.bitwise_and(image, image, mask=mask)

# show the output images
cv2.imshow("Circular Mask", mask)
cv2.imshow("Mask Applied to Image", masked)
cv2.waitKey(0)

Trên dòng 32, chúng tôi khởi tạo lại

im_thresh_color = cv.bitwise_and(im_color, mask3)
1 của chúng tôi để được lấp đầy bằng các số không và cùng kích thước như hình ảnh gốc của chúng tôi.Line 32, we re-initialize our
im_thresh_color = cv.bitwise_and(im_color, mask3)
1 to be filled with zeros and the same dimensions as our original image.

Sau đó, chúng tôi vẽ một vòng tròn màu trắng trên hình ảnh mặt nạ của chúng tôi, bắt đầu từ trung tâm của khuôn mặt tôi với bán kính

im_thresh_color = cv.bitwise_and(im_color, mask3)
5 pixel.

Áp dụng mặt nạ tròn sau đó được thực hiện trên dòng 34, một lần nữa sử dụng hàm

mask3 = cv.cvtColor(mask, cv.COLOR_GRAY2BGR)  # 3 channel mask
8.Line 34, again using the
mask3 = cv.cvtColor(mask, cv.COLOR_GRAY2BGR)  # 3 channel mask
8 function.

Kết quả của mặt nạ tròn của chúng tôi có thể được nhìn thấy trong Hình 4:Figure 4:

Hướng dẫn apply a mask to an image python - áp dụng mặt nạ cho trăn hình ảnh
Hình 4: Trái: Tạo mặt nạ tròn. Phải: trích xuất khuôn mặt từ hình ảnh đầu vào bằng mặt nạ tròn thay vì hình chữ nhật. Left: Creating a circular mask. Right: Extracting the face from the input image using a circular mask instead of a rectangular one.

Ở đây, chúng ta có thể thấy rằng mặt nạ vòng tròn của chúng ta được hiển thị ở bên trái và ứng dụng của mặt nạ ở bên phải. Không giống như đầu ra từ Hình 3, khi chúng tôi trích xuất một vùng hình chữ nhật, lần này, chúng tôi đã trích xuất một vùng tròn tương ứng với khuôn mặt của tôi trong hình ảnh.Figure 3, when we extracted a rectangular region, this time, we have extracted a circular region that corresponds to only my face in the image.

Hơn nữa, chúng ta có thể sử dụng phương pháp này để trích xuất các vùng từ hình ảnh có hình dạng tùy ý (hình chữ nhật, vòng tròn, đường, đa giác, v.v.).

Kết quả mặt nạ hình ảnh openCV

Để thực hiện mặt nạ hình ảnh với OpenCV, hãy chắc chắn truy cập vào phần Tải xuống của Google trong hướng dẫn này để truy xuất mã nguồn và hình ảnh ví dụ.“Downloads” section of this tutorial to retrieve the source code and example image.

Từ đó, mở shell và thực hiện lệnh sau:

_, mask = cv.threshold(im_gray, thresh=180, maxval=255, type=cv.THRESH_BINARY)
im_thresh_gray = cv.bitwise_and(im_gray, mask)
0

Đầu ra mặt nạ của bạn nên khớp với tôi từ phần trước.

Cái gì tiếp theo? Tôi đề nghị Đại học Pyimageearch.

Thông tin khóa học: 57+ Tổng số lớp • 60 giờ video theo yêu cầu của các video • Cập nhật lần cuối: Tháng 11 năm 2022
57+ total classes • 60+ hours of on-demand code walkthrough videos • Last updated: Nov 2022
★★★★★ 4.84 (128 Ratings) • 15,800+ Students Enrolled

Tôi tin tưởng mạnh mẽ rằng nếu bạn có một giáo viên phù hợp, bạn có thể làm chủ tầm nhìn máy tính và học sâu.

Bạn có nghĩ rằng việc học tầm nhìn máy tính và học tập sâu phải tốn thời gian, quá sức và phức tạp? Hoặc phải liên quan đến toán học và phương trình phức tạp? Hoặc yêu cầu bằng cấp về khoa học máy tính?

Đó không phải là trường hợp.

Tất cả những gì bạn cần để làm chủ tầm nhìn máy tính và học tập sâu là để ai đó giải thích mọi thứ với bạn bằng các thuật ngữ đơn giản, trực quan. Và đó chính xác là những gì tôi làm. Nhiệm vụ của tôi là thay đổi giáo dục và các chủ đề trí tuệ nhân tạo phức tạp được dạy như thế nào.

Nếu bạn nghiêm túc về việc học tầm nhìn máy tính, điểm dừng tiếp theo của bạn sẽ là Đại học Pyimageearch, tầm nhìn máy tính toàn diện nhất, học sâu và khóa học OpenCV trực tuyến ngày hôm nay. Tại đây, bạn sẽ học cách áp dụng thành công và tự tin tầm nhìn máy tính vào công việc, nghiên cứu và dự án của bạn. Tham gia với tôi trong Mastery Mastery Mastery.

Bên trong Đại học Pyimageearch, bạn sẽ tìm thấy:

  • ✓ Hơn 53 khóa học về tầm nhìn máy tính thiết yếu, học tập sâu và chủ đề OpenCV53+ courses on essential computer vision, deep learning, and OpenCV topics
  • ✓ 53+ Giấy chứng nhận hoàn thành53+ Certificates of Completion
  • ✓ Hơn 57 giờ video theo yêu cầu57+ hours of on-demand video
  • ✓ Các khóa học hoàn toàn mới được phát hành thường xuyên, đảm bảo bạn có thể theo kịp các kỹ thuật tiên tiếnBrand new courses released regularly, ensuring you can keep up with state-of-the-art techniques
  • ✓ Sổ tay Jupyter được cấu hình sẵn trong Google ColabPre-configured Jupyter Notebooks in Google Colab
  • ✓ Chạy tất cả các ví dụ mã trong trình duyệt web của bạn - hoạt động trên Windows, MacOS và Linux (không yêu cầu cấu hình môi trường Dev!)
  • ✓ Truy cập vào các repos mã tập trung cho tất cả hơn 450 hướng dẫn về pyimageearchcentralized code repos for all 450+ tutorials on PyImageSearch
  • ✓ Dễ dàng tải xuống một lần nhấp cho mã, bộ dữ liệu, mô hình được đào tạo trước, v.v. Easy one-click downloads for code, datasets, pre-trained models, etc.
  • ✓ Truy cập trên thiết bị di động, máy tính xách tay, máy tính để bàn, v.v.Access on mobile, laptop, desktop, etc.

Bấm vào đây để tham gia Đại học Pyimageearch

Bản tóm tắt

Trong hướng dẫn này, bạn đã học được những điều cơ bản về mặt nạ bằng OpenCV.

Điểm mấu chốt của mặt nạ là chúng cho phép chúng tôi chỉ tập trung tính toán vào các vùng của hình ảnh mà chúng tôi quan tâm. Tập trung tính toán của chúng tôi vào các khu vực quan tâm đến chúng tôi tác động đáng kể khi chúng tôi khám phá các chủ đề như học máy, phân loại hình ảnh và phát hiện đối tượng.

Ví dụ, hãy để cho rằng chúng tôi muốn xây dựng một hệ thống để phân loại các loài hoa.

Trong thực tế, có lẽ chúng ta chỉ quan tâm đến các cánh hoa màu và kết cấu để thực hiện phân loại. Nhưng vì chúng tôi đang chụp ảnh trong một môi trường tự nhiên, chúng tôi cũng sẽ có nhiều khu vực khác trong hình ảnh của chúng tôi, bao gồm bụi bẩn từ mặt đất, côn trùng và những bông hoa khác đang thu hút tầm nhìn. Làm thế nào chúng ta sẽ định lượng và phân loại chỉ là bông hoa mà chúng ta quan tâm? Như chúng tôi thấy, câu trả lời là mặt nạ.As we’ll see, the answer is masks.

Để tải xuống mã nguồn cho bài đăng này (và được thông báo khi các hướng dẫn trong tương lai được xuất bản tại đây trên PyimageSearch), chỉ cần nhập địa chỉ email của bạn trong biểu mẫu bên dưới!

Hướng dẫn apply a mask to an image python - áp dụng mặt nạ cho trăn hình ảnh

Tải xuống mã nguồn và hướng dẫn tài nguyên 17 trang miễn phí

Nhập địa chỉ email của bạn dưới đây để nhận .Zip của mã và hướng dẫn tài nguyên 17 trang miễn phí về tầm nhìn máy tính, openCV và học sâu. Bên trong bạn sẽ tìm thấy các hướng dẫn, sách, khóa học và thư viện được chọn bằng tay của tôi để giúp bạn thành thạo CV và DL!FREE 17-page Resource Guide on Computer Vision, OpenCV, and Deep Learning. Inside you'll find my hand-picked tutorials, books, courses, and libraries to help you master CV and DL!