用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - python代码库

python实现光照特效 光线增强 可调整光位置和强度

2022-09-06 作者: Python自学举报

[python]代码库

#!/usr/bin/env python
# encoding: utf-8
'''
python实现光照特效 光线增强 可调整光位置和强度
'''
import cv2, math
import numpy as np


class picture:

    def __init__(self):
        self.path = 'assets/picture.jpeg'

    def hello(self):
        return self

    def run(self):
        # 读取原始图像
        img = cv2.imread(self.path)
        # 获取图像行和列
        rows, cols = img.shape[:2]
        # 设置中心点
        centerX = rows / 2
        centerY = cols / 2
        print(centerX, centerY)
        radius = min(centerX, centerY)
        print(radius)
        # 设置光照强度
        strength = 30
        # 新建目标图像
        dst = np.zeros((rows, cols, 3), dtype="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 < radius * radius):
                    # 按照距离大小计算增强的光照值
                    result = (int)(strength * (1.0 - math.sqrt(distance) / radius))
                    B = img[i, j][0] + result
                    G = img[i, j][1] + result
                    R = img[i, j][2] + result
                    # 判断边界 防止越界
                    B = min(255, max(0, B))
                    G = min(255, max(0, G))
                    R = min(255, max(0, R))
                    dst[i, j] = np.uint8((B, G, R))
                else:
                    dst[i, j] = np.uint8((B, G, R))

        # 显示图像
        cv2.imshow('src', img)
        cv2.imshow('dst', dst)
        cv2.waitKey()
        cv2.destroyAllWindows()


if __name__ == '__main__':
    picture().hello().run()

[代码运行效果截图]


python实现光照特效 光线增强 可调整光位置和强度


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...