计算机视觉基础系列(python与opencv的操作与运用/tensorflow的基础介绍)(十四)---浮雕效果和颜色映射

1 浮雕效果

浮雕效果和边缘效果一样,也是需要求梯度的过程

计算公式:newP = gray0 - gray1 + 150,即,灰度图中,相邻的两个像素值之差加上150即为新的像素值

代码实现如下:

import cv2
import numpy as np
import math
img = cv2.imread('1.jpg', 1)
info = img.shape
cv2.imshow('src', img)
height = info[0]
width = info[1]
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
dst = np.zeros((height, width, 1), np.uint8)
for i in range(0, height):
    for j in range(0, width-1):
        grayP0 = int(gray[i, j])
        grayP1 = int(gray[i, j+1])
        newP = grayP0 - grayP1 + 150
        # 防止越界
        if newP > 255:
            newP = 255
        if newP < 0:
            newP = 0
        dst[i, j] = newP
cv2.imshow("dst", dst)
cv2.waitKey(0)

效果图为:

2 颜色映射

颜色映射有很多方法,也有的很复杂,这里运用的颜色映射的公式和工作量稍小,可以借鉴:
b = b*1.5    g = g*1.3

源码是:

import cv2
import numpy as np
import math
img = cv2.imread('1.jpg', 1)
info = img.shape
cv2.imshow('src', img)
height = info[0]
width = info[1]
dst = np.zeros((height, width, 3), np.uint8)
for i in range(0, height):
    for j in range(0, width):
        (b, g, r) = img[i, j]
        b = b * 1.5
        g = g * 1.3
        # 防止越界
        if b > 255:
            b = 255
        if g > 255:
            g = 0
        dst[i, j] = (b, g, r)
cv2.imshow("dst", dst)
cv2.waitKey(0)

效果图如下,可以明显看到区别:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值