鱼C论坛

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

[技术交流] 图片修补

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

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

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

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

  3. img=cv2.imread('a.jpg',1)
  4. imgInfo=img.shape
  5. height=imgInfo[0]
  6. width=imgInfo[1]
  7. for i in range(283,307):
  8.     for j in range(665,683):
  9.         img[i,j]=(0,0,0)
  10. cv2.imwrite('b.jpg',img)
  11. cv2.imshow('a',img)
  12. cv2.waitKey(0)
复制代码

b.jpg
        以上代码是我把鱼鳍的部分抠下去一块,然后我们来用opencv把它修补上:
  1. paint=np.zeros((height,width,1),np.uint8)
  2. for i in range(283,307):
  3.     for j in range(665,683):
  4.         paint[i,j]=255
  5. img_dst=cv2.inpaint(img,paint,3,cv2.INPAINT_TELEA)
  6. cv2.imshow('b',img_dst)
  7. cv2.waitKey(0)
复制代码

        修补后的图片:
dsfsdf.png
        opencv只提供了简单的修补图片的功能,用卷积神经网络可以让修改后的图片跟原图一模一样。我们还可以把图片中的一个物体去掉然后修补成背景,代码如下:
  1. import cv2
  2. import numpy as np

  3. img=cv2.imread('a.jpg',1)
  4. imgInfo=img.shape
  5. height=imgInfo[0]
  6. width=imgInfo[1]
  7. for i in range(62,90):
  8.     for j in range(644,673):
  9.         img[i,j]=(0,0,0)
  10. cv2.imwrite('c.jpg',img)
  11. cv2.imshow('a',img)
  12. cv2.waitKey(0)
复制代码

        以上代码是把田螺去掉了,然后我们再修补一下:
  1. paint=np.zeros((height,width,1),np.uint8)
  2. for i in range(62,90):
  3.     for j in range(644,673):
  4.         paint[i,j]=255
  5. img_dst=cv2.inpaint(img,paint,3,cv2.INPAINT_TELEA)
  6. cv2.imshow('b',img_dst)
  7. cv2.waitKey(0)
复制代码

        修补后的图片已经没有田螺了,变成了背景,这样我们就可以将我们不想要的物体从图片中删除,如图:
dsfddsfds.png

本帖被以下淘专辑推荐:

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 02:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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