Opencv——图片修改

目录

一、什么是图片修改

二、图片修改有哪些内容

三、举例代码展示

1.图片打码

2.图片组合

3.图片缩放


一、什么是图片修改

图片修改是指对图片进行各种处理和修改。

二、图片修改有哪些内容

  • 调色:调整图片的色彩和色调,使其更加美观或符合特定要求。
  • 抠图:将图片中的某个部分抠出来,例如将人物从背景中分离出来。
  • 合成:将多张图片合成为一张图片,例如将多个风景图片合成为一张全景图。
  • 明暗修改:调整图片的明暗度和对比度,使其更加清晰明亮或深暗模糊。
  • 彩度和色度修改:改变图片的彩度和色度,例如将彩色图片转换为黑白图片或将某些颜色变得更加鲜艳。
  • 添加特殊效果:给图片添加一些特殊效果,例如模糊、锐化、滤镜等。
  • 编辑:对图片进行裁剪、旋转、翻转等操作,以满足特定需求。

三、举例代码展示

先导入库

import numpy as np
import cv2
import matplotlib.pyplot as plt

所需图片:time.jpgmx.png

部分代码作用展示:

  1. a = cv2.imread('time.jpg'): 这行代码使用OpenCV的imread函数读取名为'time.jpg'的图像文件,并将读取到的图像数据存储在变量a中。
  2. cv2.imshow() 这行代码会在新窗口中显示处理后的图片。
  3. cv2.waitKey() 这行代码将使得窗口保持打开状态,直到用户按下键盘上任意键。
  4. 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中。

结果展示:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值