
#!/usr/bin/env python |
# encoding: utf-8 |
import cv2 |
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, 1) |
# 获取图像的高度和宽度 |
height, width = img.shape[:2] |
# 图像灰度处理 |
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) |
# 创建目标图像 |
dstImg = np.zeros((height, width, 1), np.uint8) |
# 浮雕特效算法:newPixel = grayCurrentPixel - grayNextPixel + 150 |
for i in range(0, height): |
for j in range(0, width - 1): |
grayCurrentPixel = int(gray[i, j]) |
grayNextPixel = int(gray[i, j + 1]) |
newPixel = grayCurrentPixel - grayNextPixel + 150 |
if newPixel > 255: |
newPixel = 255 |
if newPixel < 0: |
newPixel = 0 |
dstImg[i, j] = newPixel |
# 显示图像 |
cv2.imshow('src', img) |
cv2.imshow('dst', dstImg) |
# 等待显示 |
cv2.waitKey() |
cv2.destroyAllWindows() |
if __name__ == '__main__': |
picture().hello().run() |



