python - 在Python中垂直翻转图像而不使用flip()方法
问题描述
我试图在不使用任何默认翻转()或类似函数的情况下垂直翻转图像。我尝试沿像素迭代并通过使用循环尝试反转它,以便我可以垂直翻转图像。
image=cv2.imread('boat.jpg',1)
height,width,channel=image.shape
list1=[]
list2=[]
for i in range(height):
for j in range(width):
list1.append(image[i,j])
for a in range(len(list1)-1,-1,-1):
list2.append(list1[a])
b=0
for i in range(height):
for j in range(width):
image[i,j]=list2[b]
b+=1
但是翻转的图像看起来像这样:https ://ibb.co/KKVkd2d 我做错了什么?
解决方案
要垂直翻转,您必须反转数组中的行 - 第一行必须是最后一行,最后一行必须是第一行。您不必逐行移动像素。
import cv2
import numpy
image = cv2.imread('boat.jpg', 1)
image = numpy.array(list(reversed(image)))
cv2.imshow('window', image)
cv2.waitKey(0)
顺便说一句:如果要水平翻转,则必须逐行反转像素。
import cv2
import numpy
image = cv2.imread('boat.jpg', 1)
image = numpy.array([list(reversed(row)) for row in image])
cv2.imshow('window', image)
cv2.waitKey(0)
推荐阅读
- azure-ad-b2c - 在配置文件编辑步骤出错后,B2C 自定义策略要求再次登录并进行配置文件编辑
- javascript - 检测网站是否在 Windows 窗体中使用 webview 运行
- html - 为什么我的按钮下拉菜单在我没有直接悬停的情况下被激活?
- sql - 如何根据带有条件的 ID 获取 2 行日期?
- c# - VS2017 中的 BadImage 异常
- c# - 配置系统初始化失败错误
- jquery - ASP.NET MVC 中的 Ajax FileUpload 和 JQuery formData 不起作用
- c# - Cypher:在一个查询中创建节点和关系
- php - 在 apache2 上安装 php-ffmpeg
- angularjs - 存储多个字符串数组并将其显示在 html 中的最佳方式