90度旋转 flip opencv_OpenCV之图像翻转

本文介绍了如何使用OpenCV库在Python和C++中进行90度旋转、X轴、Y轴和XY轴翻转图像的操作。通过示例代码展示了如何实现图像翻转,并提到了相关API `cv.flip()` 的用法。
摘要由CSDN通过智能技术生成

python代码:

import cv2 as cv

import numpy as np

src = cv.imread("./test.png")

cv.namedWindow("input", cv.WINDOW_AUTOSIZE)

cv.imshow("input", src)

# X Flip 倒影

dst1 = cv.flip(src, 0);

cv.imshow("x-flip", dst1);

# Y Flip 镜像

dst2 = cv.flip(src, 1);

cv.imshow("y-flip", dst2);

# XY Flip 对角

dst3 = cv.flip(src, -1);

cv.imshow("xy-flip", dst3);

# custom y-flip

h, w, ch = src.shape

dst = np.zeros(src.shape, src.dtype)

for row in range(h):

for col in range(w):

b, g, r = src[row, col]

dst[row, w - col - 1] = [b, g, r]

cv.imshow("custom-y-flip", dst)

cv.waitKey(0)

cv.destroyAllWindows()

C++代码:

#include#include

using namespace cv;

using namespace std;

int main(int argc, char** argv) {

Mat src = imread("./test.png");

if (src.empty()) {

printf("could not load image...\n");

return -1;

}

imshow("input", src);

Mat dst;

// X Flip ��Ӱflip(src, dst, 0);

imshow("x-flip", dst);

// Y Flip ����flip(src, dst, 1);

imshow("y-flip", dst);

// XY Flip �Խ�flip(src, dst, -1);

imshow("xy-flip", dst);

waitKey(0);

return 0;

}

图像翻转(Image Flip) 图像翻转的本质像素映射,OpenCV支持三种图像翻转方式

- X轴翻转,flipcode = 0

- Y轴翻转, flipcode = 1

- XY轴翻转, flipcode = -1

相关的API

flip

- src输入参数

- dst 翻转后图像

- flipcode

OpenCV学习笔记代码,欢迎follow:MachineLP/OpenCV-​github.com

OpenCV中,可以使用`cv2.flip()`函数来实现图像翻转操作。该函数的参数`flipCode`用于控制翻转的方式,其中`flipCode>0`表示水平翻转,`flipCode=0`表示垂直翻转,`flipCode<0`表示水平和垂直翻转。以下是一个示例代码: ```python import cv2 import matplotlib.pyplot as plt img = cv2.imread("image.png") # 读取图像 imgFlip1 = cv2.flip(img, 0) # 垂直翻转 imgFlip2 = cv2.flip(img, 1) # 水平翻转 imgFlip3 = cv2.flip(img, -1) # 水平和垂直翻转 plt.figure(figsize=(9, 6)) plt.subplot(221), plt.axis('off'), plt.title("Original") plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) # 原始图像 plt.subplot(222), plt.axis('off'), plt.title("Flipped Horizontally") plt.imshow(cv2.cvtColor(imgFlip2, cv2.COLOR_BGR2RGB)) # 水平翻转 plt.subplot(223), plt.axis('off'), plt.title("Flipped Vertically") plt.imshow(cv2.cvtColor(imgFlip1, cv2.COLOR_BGR2RGB)) # 垂直翻转 plt.subplot(224), plt.axis('off'), plt.title("Flipped Horizontally & Vertically") plt.imshow(cv2.cvtColor(imgFlip3, cv2.COLOR_BGR2RGB)) # 水平垂直翻转 plt.show() ``` 在这个例子中,我们首先使用`cv2.imread()`函数读取图像,然后使用`cv2.flip()`函数分别进行垂直、水平和水平垂直翻转操作,最后使用Matplotlib库将图像显示出来。 希望这个例子可以帮助到您!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【OpenCV 例程200篇】29. 图像翻转(cv2.flip)](https://blog.csdn.net/youcans/article/details/121333357)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [OpenCV旋转图像的几种方法](https://blog.csdn.net/geji001/article/details/130645598)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [opencv图像旋转](https://blog.csdn.net/qq_43422995/article/details/122346080)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值