tensorflow框架下,如何批量对100张图片调用opencv对图像沿x轴.y轴.xy轴对称代码
时间: 2024-03-01 21:51:54 浏览: 18
以下是使用TensorFlow和OpenCV批量对100张图片进行图像对称操作的代码示例:
```python
import cv2
import numpy as np
import tensorflow as tf
import os
# 设置输入和输出文件夹路径
input_folder = "/path/to/input/folder"
output_folder = "/path/to/output/folder"
# 定义对称操作函数
def flip_image(img, flip_code):
return cv2.flip(img, flip_code)
# 定义TensorFlow图
with tf.Graph().as_default():
# 定义输入和输出占位符
input_image = tf.placeholder(tf.uint8, shape=[None, None, 3])
output_image_x = tf.py_func(flip_image, [input_image, 0], tf.uint8) # 沿x轴对称
output_image_y = tf.py_func(flip_image, [input_image, 1], tf.uint8) # 沿y轴对称
output_image_xy = tf.py_func(flip_image, [input_image, -1], tf.uint8) # 沿xy轴对称
# 创建会话
with tf.Session() as sess:
# 对每张图片进行操作
for filename in os.listdir(input_folder):
# 读取图片
img = cv2.imread(os.path.join(input_folder, filename))
# 运行图来进行对称操作
flipped_img_x = sess.run(output_image_x, feed_dict={input_image: img})
flipped_img_y = sess.run(output_image_y, feed_dict={input_image: img})
flipped_img_xy = sess.run(output_image_xy, feed_dict={input_image: img})
# 保存输出图片
cv2.imwrite(os.path.join(output_folder, "x_" + filename), flipped_img_x)
cv2.imwrite(os.path.join(output_folder, "y_" + filename), flipped_img_y)
cv2.imwrite(os.path.join(output_folder, "xy_" + filename), flipped_img_xy)
```
以上代码将会对输入文件夹中的每张图片进行沿x轴、y轴和xy轴对称操作,并将输出保存到输出文件夹中。你可以根据需要修改代码以仅进行特定轴的对称。