一、
浮雕效果
1.基本原理:根据像素与周围像素的差值确定像素值,差别较大的像素(边缘点通常像素差别较大)像素值较大,在灰度图中表现为较亮,边缘凸显,形成浮雕状,然后加上一个灰度偏移值,作为图片的整体底色。
2.八向浮雕:最基本的浮雕效果,根据像素值与周围八个方向的像素值的插值确定新的方向,常用于右下进行做差
3.调和浮雕,综合像素与左上、右上、左下、右下四个方向的差值确定新像素
4.相较而言,八向浮雕的立体效果更为明显,而调和浮雕的轮廓更为明显
二、
1.八向浮雕
import cv2
import numpy as np
img = cv2.imread('image01.jpg',1)
imgHeight,imgWidth,imgDeep = img.shape
grayImg = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
dstImg = np.zeros((imgHeight, imgWidth, 1), np.uint8)
for i in range(imgHeight-1):
for j in range(imgWidth-1):
p0 = int(grayImg[i,j])
p1 = int(grayImg[i+1,j+1])
newP = p0 - p1 + 128
if newP > 255:
newP = 255
elif newP < 0:
newP = 0
else:
pass
dstImg[i, j] = newP
cv2.imshow('', dstImg)
cv2.waitKey(0)
cv2.destroyAllWindows()
2.调和浮雕
import cv2
import numpy as np
img = cv2.imread('image01.jpg',1)
imgHeight,imgWidth,imgDeep = img.shape
grayImg = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
dstImg = np.zeros((imgHeight, imgWidth, 1), np.uint8)
for i in range(1,imgHeight-1):
for j in range(1,imgWidth-1):
p0 = int(grayImg[i,j])
p1 = int(grayImg[i-1,j-1])
p2 = int(grayImg[i + 1, j - 1])
p3 = int(grayImg[i+1,j+1])
p4 = int(grayImg[i-1,j+1])
newP = p0*4 - p1 -p2-p3-p4 + 128
if newP > 255:
newP = 255
elif newP < 0:
newP = 0
else:
pass
dstImg[i, j] = newP
cv2.imshow('', dstImg)
cv2.waitKey(0)
cv2.destroyAllWindows()