Qt 中使用 QImage 将 NumPy 数组转换为灰度图像
以下代码使用 Qt 中的 QImage 类将 NumPy 数组 edges 转换为灰度图像:
qimage = QImage(edges.data, edges.shape[1], edges.shape[0], QImage.Format_Grayscale8)
让我们逐个解释每个参数:
QImage: 这是 Qt 中用于处理图像的类。edges.data: 这是指向图像数据的指针。edges是一个 NumPy 数组,它存储了图像数据。edges.shape[1]: 表示图像的宽度。shape[1]是 NumPy 数组edges的第二个维度,它对应于图像的列数,即宽度。edges.shape[0]: 表示图像的高度。shape[0]是 NumPy 数组edges的第一个维度,它对应于图像的行数,即高度。QImage.Format_Grayscale8: 表示图像的格式为 8 位灰度图像。灰度图像中的每个像素使用 8 位来表示其亮度值,范围从 0(黑色)到 255(白色)。
因此,该行代码将 NumPy 数组 edges 中的图像数据转换为 QImage 对象,图像格式为 8 位灰度图像。
注意: 为了确保代码正常工作,edges 数组必须是单通道的,并且数据类型必须与 QImage.Format_Grayscale8 兼容,例如 uint8。
原文地址: https://www.cveoy.top/t/topic/nzuM 著作权归作者所有。请勿转载和采集!