OpenCV
读取图像:
img = cv2.imread(文件名,[显示控制参数]) #读取图像
cv2.imread(filename, flags=cv2.IMREAD_COLOR)
filename: str
描述: 需要读取的图像文件的路径和文件名。
类型: 字符串。
flags: int (可选)
描述: 图像的读取模式。这个参数决定了图像如何被读入:
cv2.IMREAD_COLOR 或 1: 读取彩色图像(默认值)。图像将被读入为一个三通道的 BGR 图像。
cv2.IMREAD_GRAYSCALE 或 0: 读取灰度图像。图像将被读入为一个单通道的灰度图像。
cv2.IMREAD_UNCHANGED 或 -1: 读取图像及其 alpha 通道(如果存在)。图像将被读入为一个包括所有##通道的图像(通常为 BGRA)。*/
调整大小
cv2.resize(src, dsize, fx=0, fy=0, interpolation=cv2.INTER_LINEAR)
参数说明:
-
src
:ndarray
- 描述: 要调整大小的输入图像。
- 类型: 图像数据。
-
dsize
:tuple
- 描述: 输出图像的尺寸
(宽度, 高度)
。 - 类型: 元组。
- 描述: 输出图像的尺寸
-
fx
:float
(可选)- 描述: 水平缩放因子。如果
dsize
被指定,这个参数可以忽略。 - 类型: 浮点数。
- 描述: 水平缩放因子。如果
-
fy
:float
(可选)- 描述: 垂直缩放因子。如果
dsize
被指定,这个参数可以忽略。 - 类型: 浮点数。
- 描述: 垂直缩放因子。如果
-
interpolation
:int
(可选)- 描述: 插值方法。用于图像大小调整的插值算法。常用选项包括:
cv2.INTER_LINEAR
: 双线性插值(默认值)。cv2.INTER_NEAREST
: 最近邻插值。cv2.INTER_CUBIC
: 三次插值。cv2.INTER_LANCZOS4
: Lanczos 插值。
- 描述: 插值方法。用于图像大小调整的插值算法。常用选项包括:
展示图片
cv2.imshow(窗口名,图像名) #显示图像
#示例
cv2.imshow(demo,img)
cv2.waitKey(2000) #显示时间2000ms
cv2.destroyAllWindows()#清除所有窗口
#图像保存
cv2.imwrite(文件地址,文件名)
cv2.imwrite("/home/test.jpg",img)
- 读取图片:使用
cv2.imread()
函数读取图像。 - 显示图片:使用
cv2.imshow()
函数显示读取的图像。 - 等待用户按键:使用
cv2.waitKey()
函数等待用户的按键输入。如果参数为0,则无限等待,直到用户按下某个键。 - 关闭窗口:使用
cv2.destroyAllWindows()
函数关闭所有打开的窗口。
PIL
打开和保存
from PIL import Image
# 打开图像
img = Image.open("example.jpg")
# 保存图像
img.save("example_copy.png")
裁剪、缩放、旋转、翻转
# 裁剪图像
left = 100
top = 100
right = 400
bottom = 400
cropped_img = img.crop((left, top, right, bottom))
# 调整图像大小
resized_img = img.resize((200, 200))
# 旋转图像
rotated_img = img.rotate(90)
# 水平翻转图像
flipped_img = img.transpose(Image.FLIP_LEFT_RIGHT)
resize
from PIL import Image
# 打开图像文件
img = Image.open("example.jpg")
# 指定新的尺寸 (宽度, 高度)
new_size = (200, 200)
# 使用resize()方法调整图像大小
resized_img = img.resize(new_size)
# 保存调整后的图像
resized_img.save("resized_example.jpg")
# 显示调整后的图像
resized_img.show()
转换模式:如RGB、L mode(灰度图像)等
# 转换为灰度图像
gray_img = img.convert("L")
# 转换为RGBA图像(带透明度)
rgba_img = img.convert("RGBA")