两种方式以及效果:

方式一,使用PIL.Image.blend方式:

from PIL import Image, ImageDraw

im = Image.open('d:/tmp/58.249.0.220_01_20200604141800866_TIMING.jpg', 'r')
im2 = Image.open('d:/tmp/58.249.0.220_01_20200604141800866_TIMING.jpg', 'r')
draw = ImageDraw.Draw(im2)
draw.rectangle([(1000, 500), (1200, 800)], fill=(255, 0, 0), width=2)
out = Image.blend(im, im2, 0.5)
out.save('d:/tmp/demo1.jpg')
im.close()
im2.close()
out.show()
out.close()

方式二:直接进行像素叠加:

from PIL import Image, ImageDraw

im = Image.open('d:/tmp/58.249.0.220_01_20200604141800866_TIMING.jpg', 'r')
b = (255, 0, 0)
opacity = 0.5 for x in range(1000, 1200):
for y in range(500, 800):
p = im.getpixel((x, y))
p = [int(p[i]*(1-opacity) + b[i]*opacity) for i in range(3)]
im.putpixel((x, y), tuple(p)) im.save('d:/tmp/demo2.jpg')
im.show()
im.close()

两种的效果图都如下:

说明:第一种可以画矩形椭圆等定义好的一些形状,但是第二种,可以自主控制形状的能力更好,只要将相应的数据公式编辑到程序中,就可以绘制一些想要的轮廓出来;

第二种方式,是受第一种方式的定义(

out = image1 * (1.0 - alpha) + image2 * alpha

),然后联想到色盲测试图、另一种图(不知道叫什么名字,就是一张图里面不同的人,可能看出不同的东西出来)而想出来的。

python叠加矩形框图层的更多相关文章

  1. 【python】PIL 批量绘制图片矩形框工具

    工具采用PIL:Python Imaging Library,图像处理标准库.PIL功能非常强大,但API却非常简单易用. 安装PIL 在Debian/Ubuntu Linux下直接通过apt安装 $ ...

  2. OpenCV—Python 轮廓检测 绘出矩形框(findContours\ boundingRect\rectangle

    千万注意opencv的轮廓检测和边缘检测是两码事 本文链接:https://blog.csdn.net/wsp_1138886114/article/details/82945328 1 获取轮廓 O ...

  3. C# GDI绘制矩形框,鼠标左键拖动可移动矩形框,滚轮放大缩小矩形框

    最近工作需要,要做一个矩形框,并且 用鼠标左键拖动矩形框移动其位置.网上查了一些感觉他们做的挺复杂的.我自己研究一天,做了一个比较简单的,发表出来供大家参考一下.如觉得简单,可路过,谢谢.哈哈. 先大 ...

  4. 如何用 matlab 在图片上绘制矩形框 和 添加文字 ?

    如何给图像添加矩形框?以及添加想要输入的文字 ? 案例程序,如下所示: clc; close all; clear all;image = imread('/home/wangxiao/Picture ...

  5. Android摄像头:只拍摄SurfaceView预览界面特定区域内容(矩形框)---完整(原理:底层SurfaceView+上层绘制ImageView)

    Android摄像头:只拍摄SurfaceView预览界面特定区域内容(矩形框)---完整实现(原理:底层SurfaceView+上层绘制ImageView) 分类: Android开发 Androi ...

  6. c#在pictureBox控件上绘制多个矩形框及删除绘制的矩形框

    在pictureBox上每次只绘制一个矩形框,绘制下一个矩形框时上次绘制的矩形框取消,代码如链接:https://www.cnblogs.com/luxiao/p/5625196.html 在绘制矩形 ...

  7. WPF 矩形框8个控制点伸缩及拖拽

    最近在研发图片控件矩形框8个控制点进行控制边框的大小.位置等信息,之前查阅了相关的信息,比如别人整合的类:ControlResizer 这个类虽然是好,但是很大程度上是有限制,换句话说,它需要你二次更 ...

  8. python tkinter-消息框、对话框、文件对话框

    python tkinter-消息框.对话框.文件对话框   消息框 导入 import tkinter import tkinter.messagebox #这个是消息框,对话框的关键 提示消息框 ...

  9. Torch 两个矩形框重叠面积的计算 (IoU between tow bounding box)

    Torch 两个矩形框重叠面积的计算 (IoU between tow bounding box) function DecideOberlap(BBox_x1, BBox_y1, BBox_x2, ...

随机推荐

  1. putty连接Linux(NAT)

    1.系统装好后第一次连的时候需要打开ssh服务 sudo apt-get install openssh-server 当在机器不能通过ping ip相通的话那么就要解决ip不同的问题,当ip相通还是 ...

  2. Ceph的Mon数据重新构建工具

    关于mon的数据的问题,一般正常情况下都是配置的3个mon的,但是还是有人会担心 Mon 万一三个同时都挂掉了怎么办,那么集群所有的数据是不是都丢了,关于后台真实数据恢复,有去后台取对象,然后一个个拼 ...

  3. Docker 初始

    1. Docker 是什么? 官网的介绍是"Docker is the world's leading software container platform." 官方给Docke ...

  4. NAT基本原理及应用

    参考链接 https://blog.csdn.net/u013597671/article/details/74275852

  5. 保证看完就会!大数据YRAN核心知识点来袭!

    01 我们一起学大数据 大家好,今天分享的是大数据YRAN的核心知识点,老刘尽量用通俗易懂的话来讲述YARN知识点,争取做到大家看完后能够用口语化的形式将它们表达出来,做到真正的看完就会!(如果觉得老 ...

  6. 无论PC还是Mac,都能畅快地使用移动硬盘

    如果你拥有一台Mac设备,总会遇到尴尬的那一刻--你在Mac上用得好好的移动硬盘怎么都不能被PC识别到.又或者你朋友在PC上用得好好的移动硬盘,连上你的Mac后,Mac里的文件死活就是拷贝不进移动硬盘 ...

  7. 学习netty遇到的关于 LineBasedFrameDecoder 的问题

    最近在看<Netty权威指南>这本书,关于TCP粘包/拆包,书中使用的是 LineBasedFrameDecoder 来解决的,但是我在实践的过程中出现了问题,上代码吧. 这个是 serv ...

  8. iOS 默认Cell选中

    NSInteger selectIndex = [NSIndexPath indexPathForItem:0 inSection:0]; [self.ui_tableView selectRowAt ...

  9. 5w 字 | 172 图 | 超级赛亚级 Spring Cloud 实战

    一.PassJava 项目简介 PassJava-Learning 项目是 PassJava(佳必过)项目的学习教程.对架构.业务.技术要点进行讲解. PassJava 是一款 Java 面试刷题 的 ...

  10. 自定义JSTL Tag

    <?xml version="1.0" encoding="UTF-8" ?> <taglib xmlns="http://java ...