pencv-python可以读取各类图片,然后对图像进行处理,结合矩阵操作,可以非常方便的对图像进行各类操作,下面就展示一个简单的demo,用opencv-python读取图像并展示出来。Opencv的库安装可能比较麻烦一点。

# 导入cv模块

import cv2 as cv

import numpy as np

# 读取图像,支持 bmp、jpg、png、tiff 等常用格式

# 第二个参数是通道数和位深的参数,有四种选择,参考https://www.cnblogs.com/goushibao/p/6671079.html

# 1彩色2灰度

img = cv.imread("sancun.tif", 1)

print(img)

print(img.shape)

print(img.dtype)

print(img.min())

print(img.max())

# 创建窗口并显示图像

cv.namedWindow("image", cv.WINDOW_NORMAL)

cv.imshow("image", img)

cv.waitKey(0)

# 释放窗口

cv.destroyAllWindows()

结果如图所示:

对于cv2,imread的关于通道数和位深的flags有四种选择:

IMREAD_UNCHANGED = -1#不进行转化,比如保存为了16位的图片,读取出来仍然为16位。

IMREAD_GRAYSCALE = 0#进行转化为灰度图,比如保存为了16位的图片,读取出来为8位,类型为CV_8UC1。

IMREAD_COLOR = 1#进行转化为RGB三通道图像,图像深度转为8位

IMREAD_ANYDEPTH = 2#保持图像深度不变,进行转化为灰度图。

IMREAD_ANYCOLOR = 4#若图像通道数小于等于3,则保持原通道数不变;若通道数大于3则只取取前三个通道。图像深度转为8位

对于多通道TIFF图像,若要保证图像数据的正常读取,显然要选择IMREAD_UNCHANGED作为imread的flags设置值。

参考博客:

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐