将图像坐标系的原点更改为左下角而不是默认的左上角

gay*_*aya 5 opencv matplotlib python-2.7

有没有一种简单的方法可以将 OpenCV 的图像坐标系的原点更改为左下角?numpy例如使用?我正在使用 OpenCv 2.4.12 和 Python 2.7。

相关:Numpy 翻转坐标系,但这只是讨论显示。我想要一些我可以在我的算法中一致使用的东西。

更新:

def imread(*args, **kwargs):
    img = plt.imread(*args, **kwargs)
    img = np.flipud(img)
    return img      
#read reference image using cv2.imread
imref=cv2.imread('D:\\users\\gayathri\\all\\new\\CoilA\\Resized_Results\\coilA_1.png',-1)
cv2.circle(imref, (0,0),30,(0,0,255),2,8,0)
cv2.imshow('imref',imref)

#read the same image using imread function
im=imread('D:\\users\\gayathri\\all\\new\\CoilA\\Resized_Results\\coilA_1.png',-1)
img= im.copy()
cv2.circle(img, (0,0),30,(0,0,255),2,8,0)
cv2.imshow('img',img)
Run Code Online (Sandbox Code Playgroud)

使用 cv2.imread 读取图像: 原图

使用 imread 函数翻转的图像: 翻转

正如所见,圆是在原始图像和翻转图像的左上角的原点绘制的。但是图像看起来翻转了我不想要的。

the*_*ere 6

反转高度(或列)像素将得到下面的结果。

import numpy as np
import cv2
import matplotlib.pyplot as plt
%matplotlib inline 

img = cv2.imread('./imagesStackoverflow/flip_body.png') # read as color image
flip = img[::-1,:,:] # revise height in (height, width, channel)

plt.imshow(img[:,:,::-1]), plt.title('original'), plt.show()
plt.imshow(flip[:,:,::-1]), plt.title('flip vertical'), plt.show()
plt.imshow(img[:,:,::-1]), plt.title('original with inverted y-axis'), plt.gca().invert_yaxis(), plt.show()
plt.imshow(flip[:,:,::-1]), plt.title('flip vertical with inverted y-axis'), plt.gca().invert_yaxis(), plt.show()
Run Code Online (Sandbox Code Playgroud)

输出图像:

在此处输入图片说明

以上包括你打算做的一个?