前期已经基于OpenVINO搭建成功了天空识别模型,并且能够得到着色的结果图片,下一步就是继续来实现“天空替换”
一、天空替换重构
在OpenVINO着色结果基础上,重新编写c++和python版本的天空替换代码。
import cv2
import numpy as np
matSrc =cv2.imread( 'E:/template/sky14.jpg')
matCloud = cv2.imread( 'E:/template/cloud3.jpg')
matMask = cv2.imread( 'E:/template/skyInBlue.png', 0)
rows,cols=matMask.shape
for i in range(rows):
for j in range(cols):
if (matMask[i,j]== 124):
matMask[i,j]= 255
else:
matMask[i,j]= 0
height,width=matSrc.shape[: 2]
matCloud=cv2.resize(matCloud,(width,height),interpolation=cv2.INTER_CUBIC)
matMask=cv2.resize(matMask,(width,height),interpolation=cv2.INTER_CUBIC)
center = (width // 2, height // 2)
# Seamlessly clone src into dst and put the results in output
normal_clone = cv2.seamlessClone(matCloud, matSrc, matMask, center, cv2.NORMAL_CLONE)
mixed_clone = cv2.seamlessClone(matCloud, matSrc, matMask, center, cv2.MIXED_CLONE)
cv2.imshow( 'normal_clone',normal_clone)
cv2.imshow( 'mixed_clone',mixed_clone)
cv2.waitKey( 0)
原图:
替换图:
这个已经实现了天空替换的结果,但是颜色还需要调亮一点。
二、 相关的代码融合
view,主要是融入代码:
最后实现在浏览器中的调用时正常的。
三、 目标导向
我最终想实现的是完全自可 主 控的类似https://cloud.baidu.com/product/imageprocess/sky_seg 的服务
包括网站服务,后端调用等。当然这个界面比较复杂,我自己的实现比较简单,如果能够找到 Django的模板的话,我也会来进行实现。