提取图像roi=>完善斑马鱼背景模型

1 PIL图像处理 :https://www.cnblogs.com/lyrichu/p/9124504.html

from PIL import Image

im = Image.open("background.jpg", "r")  # 读取图片 
box = (100, 100, 200, 200) # 选择区域
region = im.crop(box)  #裁剪图片区域
region.show()  # 展示图片区域

2 没有反馈,所以不知道roi在原图中的位置, cv2来画框 https://blog.csdn.net/weixin_38145317/article/details/89497616

import cv2

image = cv2.imread('background.jpg')  # 读取图片
pic_box = cv2.rectangle(image, (100, 100), (200, 200), (0, 255, 0), 2)  # 画框(xmin,ymin),(xmax, ymax),(颜色),粗细
# cv2.imwrite('2.jpg', image)  # 写入图片

cv2.imshow("pic_box", pic_box)  # 显示画过矩形框的图片
cv2.waitKey(0)
cv2.destroyWindow("pic_box")

3 打补丁的方式消除鱼影  img.paste(mask, (xmin_b, ymin_b)) 

# -*- coding=utf-8 -*-
# Author: zjc
# Creation Date:19-8-30
from PIL import Image
import matplotlib.pylab as plt
import cv2
import imageio
import numpy as np

# ==========================> mask1
# 获得mask1区域
xmin_m1 = 110
ymin_m1 = 400
xmax_m1 = 500
ymax_m1 = 500

# 获得图片, 裁剪mask1区域, 
img = Image.open("background.jpg", "r")
box1 = (xmin_m1, ymin_m1, xmax_m1, ymax_m1)
# 1 展示"mask1区域"
mask1 = img.crop(box1)
# mask1.show()

# ==========================> mask2
# 获得mask2区域
xmin_m2 = 750
ymin_m2 = 400
xmax_m2 = 1100
ymax_m2 = 500

# 获得图片, 裁剪mask区域, 
img = Image.open("background.jpg", "r")
box2 = (xmin_m2, ymin_m2, xmax_m2, ymax_m2)
# 1 展示"mask区域"
mask2 = img.crop(box2)
# mask2.show()

# ==========================> 被覆盖区域1
# 被覆盖区域covered2
xmin_cov1 = 110
ymin_cov1 = 200  # 200
xmax_cov1 = 500
ymax_cov1 = 300  # 300

# 2 画图展示"被覆盖区域1"
box2 = (xmin_cov1, ymin_cov1, xmax_cov1, ymax_cov1)
region_b = img.crop(box2)
# region_b.show()

# ==========================> 被覆盖区域2
# "被覆盖区域2"covered2
xmin_cov2 = 700
ymin_cov2 = 500
xmax_cov2 = 1100
ymax_cov2 = 600

# 4 画图展示"被覆盖区域2" cv2格式
image = cv2.imread('background.jpg')
pic = cv2.rectangle(image, (xmin_cov2, ymin_cov2), (xmax_cov2, ymax_cov2), (255, 0, 0), 2)
# cv2.imshow("pic_box", pic)


# ==========================> 把mask1 mask2 贴在covered1 covered2区域
# 5 把mask图片贴在img上面  https://blog.csdn.net/MiniCatTwo/article/details/80626330
img.paste(mask1, (xmin_cov1, ymin_cov1))
img.paste(mask2, (xmin_cov2, ymin_cov2))

print(type(img))  # <class 'PIL.JpegImagePlugin.JpegImageFile'>

'''cv2.imshow("pic_box", im)  # 显示画过矩形框的图片 
# cv2会报错是因为不是numpy格式
# TypeError: mat is not a numpy array, neither a scalar'''
# 展示最终图片
plt.imshow(img)
plt.show()

print(type(img))
img.save('/home/hp/zjc/nk_PyCharm/PyCharm_project/nk_fishbox/nk_roi_extract/background1.jpg')

cv2.waitKey(0)
cv2.destroyWindow("pic_box")


 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

计算机视觉-Archer

图像分割没有团队的同学可加群

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值