cv2.addWeighted()有tensorflow 类似功能吗?我需要这个函数对我的tf.dataset对象进行图像处理.

如果没有,我如何使用OpenCV方法和TensorFlow来获得相同的结果?

下面是我的代码供参考.

import tensorflow as tf
from tensorflow.image import ResizeMethod
import pathlib
import os
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
import cv2
from PIL import Image

np.set_printoptions(precision=4)
filepaths = df['filepath'].values
labels = df[[0,2,4]].values


ds_train = tf.data.Dataset.from_tensor_slices((filepaths, labels))

def read_image(image_file, labels):
    img = tf.io.read_file(image_file)
    img = tf.image.decode_png(img, channels=3, dtype=tf.uint8)

    
    img = tf.image.resize(img, [512, 512], preserve_aspect_ratio=False)
    
    img2 = ...
    
    # Need something equivalent to cv2.addWeighted() to use on img and img2
  
    return img, labels

ds_train = ds_train.map(read_image).batch(32, drop_remainder = True)

如果这个问题已经得到回答,我提前道歉.我到处搜索,找不到复制的方法.

推荐答案

我想我可能通过使用其他tensorflow 函数找到了解决方法.

import tensorflow as tf
import tensorflow_addons as tfa
def tensorflow_addWeighted(img1, img2):
     img = img1 * tf.multiply(tf.ones(image1_shape, dtype = tf.uint8), alpha) + img2 * tf.multiply(tf.ones(image2_shape, dtype = tf.uint8), beta) + lambda
     return img

这与OpenCV文档中的公式相同,使用tensorflow实现.Alpha、beta和lambda是相应的权重值,正如您在OpenCV中使用它们一样.

Python相关问答推荐

图像 pyramid .难以创建所需的合成图像

如何使用数组的最小条目拆分数组

ODE集成中如何终止solve_ivp的无限运行

OR—Tools中CP—SAT求解器的IntVar设置值

将tdqm与cx.Oracle查询集成

导入...从...混乱

在www.example.com中使用`package_data`包含不包含__init__. py的非Python文件

如何在Python中使用Pandas将R s Tukey s HSD表转换为相关矩阵''

* 动态地 * 修饰Python中的递归函数

Python Tkinter为特定样式调整所有ttkbootstrap或ttk Button填充的大小,适用于所有主题

在Admin中显示从ManyToMany通过模型的筛选结果

语法错误:文档. evaluate:表达式不是合法表达式

使用tqdm的进度条

什么是一种快速而优雅的方式来转换一个包含一串重复的列,而不对同一个值多次运行转换,

需要帮助使用Python中的Google的People API更新联系人的多个字段'

提取最内层嵌套链接

如何获取给定列中包含特定值的行号?

Numpy`astype(Int)`给出`np.int64`而不是`int`-怎么办?

对当前的鼹鼠进行编码,并且我的按键获得了注册

搜索结果未显示.我的URL选项卡显示:http://127.0.0.1:8000/search?";,而不是这个:";http://127.0.0.1:8000/search?q=name";