栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python 数字图像处理之图像光照效果的实现

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python 数字图像处理之图像光照效果的实现

Python 数字图像处理之图像光照效果的实现

工具:VS Code、图像文件
Python模块:cv2、math、numpy

1. 导入相应的Python模块

import cv2              #用以读取图像文件
import math
import numpy as np

2. 读取图像文件

img=cv2.imread("111.jpg")    #参数为图像文件名

3. 获取图像的高和宽(行列值)

rows,cols = img.shape[:2]
注:[0:2]是切片的意思,.shape 应当是OpenCV模块中处理图片的,是图片的一个属性,这个属性是个列表 ,然后对这个列表切片操作。
例子:h,w = img.shape[:2] 获取彩色图片的高、宽,并且赋值给h和w;如果是h,w,v = img.shape[:3] 获取彩色图片的高、宽、通道,并赋值给h w v

此处转自:https://blog.csdn.net/Mr_LanGX/article/details/120275615

4. 设置中心点

centerX=rows/2      #可以根据自己需求去设置XY的位置
centerY=rows/2
print(centerX,centerY)
radius = min(centerX,centerY)  #增亮半径
print(radius)
运行结果:
344.0 344.0
344.0

5. 光照效果的实现

strength = 300   #自定义光照亮度
dst = np.zeros((rows,cols,3),dtype="uint8")     #新建目标图像,矩阵中每个元素的类型为uint8

#图像光照特效
for i in range(rows):
    for j in range(cols):
        distance = math.pow((centerY-j),2)+math.pow((centerX-i),2)    #计算当前点到光照中心距离
        
        B=img[i,j][0]   #获取原始图像
        G=img[i,j][1]
        R=img[i,j][2]
        if(distance 

6. 显示图像

cv2.imshow('src',img)
cv2.imshow('dst',dst)
cv2.waitKey()
cv2.destroyAllWindows.destroyAllWindows()

处理结果:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/286638.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号