首页 > 其他分享 >Opencv实现边界填充、两个图片像素直接相加后超过255的处理方式(阈值处理方式),一个窗口显示多张图片的方式

Opencv实现边界填充、两个图片像素直接相加后超过255的处理方式(阈值处理方式),一个窗口显示多张图片的方式

时间:2024-04-07 19:02:03浏览次数:19  
标签:plt img 方式 imshow cv2 图片 255 BORDER size

 opencv两个图片直接相加,会直接相加,如果超过255,会取模。
 print((img_cat+img_cat2)[:5,:,0]) # 0-255 若相加越界后 294 用 294%256 获得余数 38
可以使用这种方式查看。展示的是前5行,所有列的第一个通道的值。
还有一种方法是cv2.add(),这个方法会直接将超过255的值设置为255,不会取模。

import cv2
import matplotlib.pylab as plt

def border_fill(img):
    # 边界填充
    # BORDER_REPLICATE:复制法,也就是复制最边缘像素。
    # BORDER_REFLECT:反射法,对感兴趣的图像中的像素在两边进行复制例如:fedcba|abcdefgh|hgfedcb
    # BORDER_REFLECT_101:反射法,也就是以最边缘像素为轴,对称,gfedcb|abcdefgh|gfedcba
    # BORDER_WRAP:外包装法cdefgh|abcdefgh|abcdefg,即将图像的边缘进行交换。
    # BORDER_CONSTANT:常量法,常数值填充。
    img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
    top_size, bottom_size, left_size, right_size = (50, 50, 50, 50)
    replicate = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_REPLICATE)
    reflect = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_REFLECT)
    reflect101 = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_REFLECT_101)
    wrap = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_WRAP)
    constant = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_CONSTANT, value=0)
    # cv2.imshow('replicate', replicate)
    # cv2.imshow('reflect', reflect)
    # cv2.imshow('reflect101', reflect101)
    # cv2.imshow('wrap', wrap)
    # cv2.imshow('constant', constant)
    # cv2.waitKey()
    # cv2.destroyAllWindows()
    plt.subplot(231), plt.imshow(img, 'gray'), plt.title('ORIGINAL')
    plt.subplot(232), plt.imshow(replicate, 'gray'), plt.title('REPLICATE')
    plt.subplot(233), plt.imshow(reflect, 'gray'), plt.title('REPLECT')
    plt.subplot(234), plt.imshow(reflect101, 'gray'), plt.title('REFLECT_101')
    plt.subplot(235), plt.imshow(wrap, 'gray'), plt.title('WRAP')
    plt.subplot(236), plt.imshow(constant, 'gray'), plt.title('CONSTAVI')

    plt.show()
# opencv两个图片直接相加,会直接相加,如果超过255,会取模。
# print((img_cat+img_cat2)[:5,:,0])  # 0-255 若相加越界后 294 用 294%256 获得余数 38
# 可以使用这种方式查看。展示的是前5行,所有列的第一个通道的值。
# 还有一种方法是cv2.add(),这个方法会直接将超过255的值设置为255,不会取模。

填充后的结果如图所示

标签:plt,img,方式,imshow,cv2,图片,255,BORDER,size
From: https://blog.csdn.net/qq_45943389/article/details/137467333

相关文章

  • 苦瓜:音乐知识图片备份
    和弦基础......
  • 【22.0】Django框架之CBV添加装饰器的三种方式
    【一】引言给类视图函数添加装饰器需要借助第三方模块fromdjango.utils.decoratorsimportmethod_decorator【二】三种添加装饰器方式【1】给类方法加装饰器指名道姓的装--放在方法上面(1)路由path('login_view/',views.MyLogin.as_view()),(2)视图fromdjango.vi......
  • 「36」如何让直播间的文字,图片动起来?
    OBS中的滚动滤镜是一种视频滤镜效果,用于在直播或录制过程中创建滚动字幕或滚动文本效果。滚动滤镜,可以让您在视频画面中显示滚动的文本内容,以提供额外的信息或注释。你经常看到,直播间的「文字和图片」在匀速的滚动,怎么做的呢?现在教你……实操步骤一、文字走动第1步添加......
  • Qt 中信号槽的连接方式总结
    Qt中信号槽的连接方式,即:QObject::connect()函数的第五个参数Qt::ConnectionType,共有五种连接方式。它决定了是否立刻将特定的信号传递给槽函数,还是将其放在队列中,稍后进行传递。1.Qt::AutoConnection:自动连接(默认方式)当第五个参数缺省时默认为该连接方式。具体为:当接收者......
  • 批量图片翻转、裁剪
    【Python】Windows环境-Python批量图片翻转、裁剪WindowsVsCode搭建Python环境注意事项python不要安装在含有中文的路径里修改pip源(PowerShell里)a.更新pip>python-mpipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simple--upgradepipb.设置pip源(清华大学......
  • 多平台商品图片批量下载,素材应有尽有!
    在现在信息传播速度飞快的网络时代,电商平台上的商品图片更是林林总总。对于设计师和营销人员来说,想要获取这些精美的商品图片,以便用于广告、宣传册或其他创意作品,确实是一项不小的挑战。不过,要将这一切都将变得轻而易举,也不是不可以。“什么,你们不信?”小编来脾气了,现在就证明给......
  • 关于layui的单图片上传遇坑-field-input-name问题解决
    直接上代码注意field:'ymftimage'layui.use(function(){varupload=layui.upload;varlayer=layui.layer;varelement=layui.element;var$=layui.$;//单图片上传varuploadInst=upload.render({elem:'#ID-upload-demo-btn',......
  • 通过selenium框架爬取图片
    通过selenium框架爬取图片环境搭建搭建python环境就不在此展开了,首先安装selenium框架:pipinstallselenium下载浏览器驱动,此处仅仅以Chrome浏览器为例子,驱动版本必须与当前系统安装的Chrome对应。chromedriver下载,如果找不到对应版本,是因为版本太新,需要到此链接找到......
  • 数码相框-显示JPG图片
    LCD控制器会将LCD上的屏幕数据映射在相应的显存位置上。​​通过libjpeg把jpg图片解压出来RGB原始数据。libjpeg是使用c语言实现的读写jpeg文件的库。使用libjpeg的应用程序是以"scanline"为单位进行图像处理的。libjpeg解压图片的步骤:​​‍libjpeg的使用DirectoryList......
  • 网页图形绘制:图片水印
    网页图形绘制:图片水印一、实验目标:掌握Canvas的基本用法。掌握Canvas图片引用的方法。掌握使用Canvas绘制文本的方法。掌握Canvas图形变形的方法。综合应用Canvas绘图技术,开发图片水印。二、实验任务使用<canvas>标签结合JS制作带水印的图片,页面效果如下......