鱼C论坛

 找回密码
 立即注册
查看: 1098|回复: 0

[技术交流] 图片修补

[复制链接]
发表于 2018-11-22 15:46:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 alltolove 于 2018-11-22 15:56 编辑
import cv2
import numpy as np

img=cv2.imread('a.jpg',1)
imgInfo=img.shape
height=imgInfo[0]
width=imgInfo[1]
for i in range(283,307):
    for j in range(665,683):
        img[i,j]=(0,0,0)
cv2.imwrite('b.jpg',img)
cv2.imshow('a',img)
cv2.waitKey(0)
b.jpg
        以上代码是我把鱼鳍的部分抠下去一块,然后我们来用opencv把它修补上:
paint=np.zeros((height,width,1),np.uint8)
for i in range(283,307):
    for j in range(665,683):
        paint[i,j]=255
img_dst=cv2.inpaint(img,paint,3,cv2.INPAINT_TELEA)
cv2.imshow('b',img_dst)
cv2.waitKey(0)
        修补后的图片:
dsfsdf.png
        opencv只提供了简单的修补图片的功能,用卷积神经网络可以让修改后的图片跟原图一模一样。我们还可以把图片中的一个物体去掉然后修补成背景,代码如下:
import cv2
import numpy as np

img=cv2.imread('a.jpg',1)
imgInfo=img.shape
height=imgInfo[0]
width=imgInfo[1]
for i in range(62,90):
    for j in range(644,673):
        img[i,j]=(0,0,0)
cv2.imwrite('c.jpg',img)
cv2.imshow('a',img)
cv2.waitKey(0)
        以上代码是把田螺去掉了,然后我们再修补一下:
paint=np.zeros((height,width,1),np.uint8)
for i in range(62,90):
    for j in range(644,673):
        paint[i,j]=255
img_dst=cv2.inpaint(img,paint,3,cv2.INPAINT_TELEA)
cv2.imshow('b',img_dst)
cv2.waitKey(0)
        修补后的图片已经没有田螺了,变成了背景,这样我们就可以将我们不想要的物体从图片中删除,如图:
dsfddsfds.png

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 09:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表