目录
一、什么是图片修改
图片修改是指对图片进行各种处理和修改。
二、图片修改有哪些内容
- 调色:调整图片的色彩和色调,使其更加美观或符合特定要求。
- 抠图:将图片中的某个部分抠出来,例如将人物从背景中分离出来。
- 合成:将多张图片合成为一张图片,例如将多个风景图片合成为一张全景图。
- 明暗修改:调整图片的明暗度和对比度,使其更加清晰明亮或深暗模糊。
- 彩度和色度修改:改变图片的彩度和色度,例如将彩色图片转换为黑白图片或将某些颜色变得更加鲜艳。
- 添加特殊效果:给图片添加一些特殊效果,例如模糊、锐化、滤镜等。
- 编辑:对图片进行裁剪、旋转、翻转等操作,以满足特定需求。
三、举例代码展示
先导入库
import numpy as np
import cv2
import matplotlib.pyplot as plt
部分代码作用展示:
a = cv2.imread('time.jpg')
: 这行代码使用OpenCV的imread函数读取名为'time.jpg'的图像文件,并将读取到的图像数据存储在变量a中。cv2.imshow()
这行代码会在新窗口中显示处理后的图片。cv2.waitKey()
这行代码将使得窗口保持打开状态,直到用户按下键盘上任意键。cv2.destroyAllWindows()
这行代码会关闭所有的窗口。
1.图片打码
a = cv2.imread(r'time.jpg')
a[100:200, 200:300] = np.random.randint(0, 256, (100, 100, 3))
cv2.imshow('result', a)
cv2.waitKey(1000000)
cv2.destroyAllWindows()
a[100:200, 200:300] = np.random.randint(0, 256, (100, 100, 3)):这行代码是用于在图片的 (100, 200) 到 (200, 300) 区域上生成一个大小为 (100, 100, 3) 的随机整数数组,数组的每个元素都在 0 到 255 之间,然后把这个数组赋值给图片的对应区域。这会使得这个区域内的像素被替换成随机值,从而改变了图片的内容。
结果展示:
2.图片组合
a = cv2.imread('time.jpg')
b = cv2.imread('mx.png')
b[200:250, 200:250] = a[150:200, 150:200] # 注意:矩阵的大小必须要统一。
cv2.imshow('result', b)
cv2.waitKey(100000)
cv2.destroyAllWindows()
b[200:250, 200:250] = a[150:200, 150:200]: 这行代码将a
图像中的一个子区域(从(150,150)到(200,200)的区域)复制到b图像的一个子区域(从(200,200)到(250,250)的区域)。这是通过在两个图像上分别指定源区域和目标区域来实现的。注意,源区域和目标区域的大小必须是一样的,否则这行代码会报错。
结果展示:
3.图片缩放
a = cv2.imread('time.jpg')
a_new = cv2.resize(a, (200, 600))
a_new = cv2.resize(a, dsize=None, fx=2, fy=3)
cv2.imshow('a_new', a_new)
cv2.waitKey(100000)
cv2.destroyAllWindows()
a_new = cv2.resize(a, (200, 600)):这行代码使用OpenCV的resize函数对图像a进行大小调整,将其宽度设为200像素,高度设为600像素。调整后的图像数据存储在变量a_new中。
a_new = cv2.resize(a, dsize=None, fx=2, fy=3):这行代码又一次使用OpenCV的resize函数对图像a进行大小调整。这次调整不同于上一次,因为它接受的是fx和fy参数,这两个参数分别控制图像在水平方向和垂直方向上的缩放因子。这里fx=2,fy=3,表示水平方向上的缩放因子是2,垂直方向上的缩放因子是3。因此,图像在水平和垂直方向上都会被放大。调整后的图像数据仍然存储在变量a_new中。
结果展示: