gpt4 book ai didi

python - 如何在 Python 中为 OpenCV minMaxLoc 函数创建掩码矩阵变量?

转载 作者:行者123 更新时间:2023-12-02 17:49:52 32 4
gpt4 key购买 nike

我在 Python 中使用 OpenCV。

我正在尝试创建一个 Mask此函数中使用的矩阵变量:cv.minMaxLoc . Matrix 变量的大小应与我的模板图像相同,类型 = CV_8UC1 .

我的模板图像有一个 alpha channel ,它只包含 0%100%透明度像素。如何从我的图像中提取 alpha channel 数据并将其放入 Mask带有 0 = 100% transparency 的矩阵和 1 = 0% transparency ?

最佳答案

import numpy as np
import cv
from PIL import Image

# open the image
img = Image.open('./pic.png', 'r')

r,g,b, alpha_channel = img.split()

mask = np.array(alpha_channel)

# all elements in alpha_channel that have value 0
# are set to 1 in the mask matrix
mask[alpha_channel==0] = 1

# all elements in alpha_channel that have value 100
# are set to 0 in the mask matrix
mask[alpha_channel==100] = 0

归功于其他职位:
How to get alpha value of a PNG image with PIL?
Converting numpy array having image data to CvMat

要将 numpy 数组转换为 cvmat,请执行以下操作:
cv_arr = cv.fromarray(mask)

检查掩码的dtype。它应该是 dtype('uint8')
当我转换它时,我的 cv_arr 是
cvmat(类型=42424000 8UC1 行=1245 列=2400 步=2400)

我不是 opencv 方面的专家,但在我看来,8UC1 是基于 dtype 是 uint8 的事实自动选择的(我在这里猜测是因为我找不到关于它的文档)。

关于python - 如何在 Python 中为 OpenCV minMaxLoc 函数创建掩码矩阵变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24713237/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com