首页 > 编程语言 >OpenCV-Python之像素运算

OpenCV-Python之像素运算

时间:2022-11-22 23:39:29浏览次数:52  
标签:Python image cv src2 OpenCV src1 m1 像素 dst


1.算术运算:加减乘除

import cv2 as cv

def add_img(m1, m2):
dst = cv.add(m1, m2)
cv.imshow("add image", dst)

def subtract_img(m1, m2):
dst = cv.subtract(m1, m2)
cv.imshow("subtract image", dst)

def multiply_img(m1, m2):
dst = cv.multiply(m1, m2)
cv.imshow("multiply image", dst)

def divide_img(m1, m2):
dst = cv.divide(m1, m2)
cv.imshow("divide image", dst)

src1 = cv.imread("./data/LinuxLogo.jpg", 1)
src2 = cv.imread("./data/WindowsLogo.jpg", 1)
cv.imshow("src1 image", src1)
cv.imshow("src2 image", src2)
print(src1.shape, src2.shape)

add_img(src1, src2)
subtract_img(src1, src2)
divide_img(src1, src2)
multiply_img(src1, src2)


cv.waitKey(0)
cv.destroyAllWindows()

OpenCV-Python之像素运算_算术运算

2.求均值和标准差

import cv2 as cv
#仅求均值
def mean_image(m1, m2):
M1 = cv.mean(m1)
M2 = cv.mean(m2)
print(M1)
print(M2)
#求均值以及标准差
def others(m1, m2):
M1, dev1 = cv.meanStdDev(m1)
M2, dev2 = cv.meanStdDev(m2)
#构造纯黑图片
h, w = m1.shape[:2]#get height and width
img = np.zeros([h, w], np.uint8)
m, d = cv.meanStdDev(img)

print(M1,'\n', dev1)
print(M2,'\n', dev2)
print(m, '\n',d)

src1 = cv.imread("./data/LinuxLogo.jpg", 1)
src2 = cv.imread("./data/WindowsLogo.jpg", 1)
cv.imshow("src1 image", src1)
cv.imshow("src2 image", src2)
others(src1, src2)
cv.waitKey(0)
cv.destroyAllWindows()

3.逻辑运算

应用:遮罩层控制

#逻辑运算 与或非
def logic_demo(m1, m2):
dst_and = cv.bitwise_and(m1, m2)
dst_or = cv.bitwise_or(m1, m2)
dst_not = cv.bitwise_not(m1, m2)
cv.imshow("logic_and image", dst_and)
cv.imshow("logic_or image", dst_or)
cv.imshow("logic_not image", dst_not)
src1 = cv.imread("./data/LinuxLogo.jpg", 1)
src2 = cv.imread("./data/WindowsLogo.jpg", 1)
cv.imshow("src1 image", src1)
cv.imshow("src2 image", src2)
logic_demo(src2, src1)
cv.waitKey(0)
cv.destroyAllWindows()

OpenCV-Python之像素运算_OpenCV_02

4. 调整亮度和对比度

需要用到的API为addWeighted:
addWeighted(src1, alpha, src2, beta, gamma, dst=None, dtype=None)

非常重要:python灵活的一点在于,只要参数为None的,都可以作为返回值接收

# 对比度和亮度调整
def contract_brightness_demo(img, c, b):
h, w, ch = img.shape
blank = np.zeros([h, w, ch], img.dtype)
dst = cv.addWeighted(img, c, blank, 1-c, b)
cv.imshow("con_bri_demo", dst)
image = cv.imread('./data/lena.jpg', 1)
cv.imshow('source image', image)
contract_brightness_demo(image, 1.2, 50)
cv.waitKey(0)
cv.destroyAllWindows()

OpenCV-Python之像素运算_addWighted_03


标签:Python,image,cv,src2,OpenCV,src1,m1,像素,dst
From: https://blog.51cto.com/u_13875041/5878723

相关文章

  • python 日志模块 loguru
    前言:日志模块定义好格式,之后直接拿来用即可步骤一:先把日志里面的参数写到配置文件里,之后直接调用即可。这里用的是ini文件(新建一个ini结尾的文件)[log]format={time......
  • Python学习笔记(五)
    函数定义Python的函数由函数头和函数体构成,结构如下:deffunction_name(parameters):"""docstring"""statement(s)returnPython函数定义必须以def关键词......
  • 第十四届蓝桥杯校内模拟赛第二期——Python
    第十四届蓝桥杯校内模拟赛第二期——Python目录第十四届蓝桥杯校内模拟赛第二期——Python第一题问题描述答案提交答案第二题问题描述答案提交答案第三题问题描述答案提交......
  • python打包工具distutils
    参考: http://www.cppcns.com/jiaoben/python/225742.htmlpython源码包安装:pythonsetup.pyinstalldistutilsdistutils是python标准库的一部分,这个库的目的是为开......
  • Python基础之数据库:1、数据库发展史及常用数据库的介绍
    Python基础之数据库目录Python基础之数据库一、储存数据演变史1、文本文件2、软件开发目录规范3、数据库二、数据库软件应用史三、数据库的本质四、数据库的分类1、关系......
  • Python函数的参数列表
    一、函数参数的分类函数的参数分为两类:形参及实参形参:形参是在创建过程中声明的参数,如果不给形参传入特定的实参,形参就没有实际的意义实参:实参是在函数的调用过程中传......
  • Python中除了lambda函数能实现一句话程序,还有什么方式能够实现呢?
    引言我们都知道python中使用lambda函数能够实现一句话程序,一句话能实现复杂功能,是一件多么炫酷的事情.但也是有利有弊的,至少一句话代码虽然简洁,但可读性不好,毕竟现实中......
  • Python 命令行参数
    Python命令行参数参考文章:https://zhuanlan.zhihu.com/p/56922793目标:编写出可执行参数的脚本文件并打包;1.sys模块方法使用sys.argv获取执行参数;"""开发终端参......
  • 2211-22学习记录之python百分数,time模块
    百分数print('{:.0%}'.format(84/100))输出为84%以上百分数输出是使用到了字符串格式化函数format(),在其中将分数42/50作为值给传递了进去。如果将分子分母同时乘以2......
  • 2. pycharm终端提示无法加载文件 F:\Users\Administrator\PycharmProjects\python
    问题如下:终端(terminnal)遇到下面红色问题。   怎么解决??pycharm终端提示无法加载文件F:\Users\Administrator\PycharmProjects\pythonProject\venv\Scripts\activa......