我在交换图像的通道(特别是红色和蓝色)时遇到了一些问题.我使用的是Opencv 3.0.0和Python 2.7.12.以下是我交换频道的代码
import cv2
img = cv2.imread("input/car1.jpg")
#The obvious approach
Cimg = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
#Manual Approach
red = img[:,:,2]
blue = img[:,:,0]
img[:,:,0] = red
img[:,:,2] = blue
cv2.imshow("frame",Cimg)
cv2.imshow("frame2", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚为什么通过相同(可能)操作的同一图像正在给出两个不同的输出.有人可以解决出了什么问题吗?
谢谢!
我想将 2D 图像坐标转换为 3D 世界坐标。我正在使用 ZED 相机,它是一个立体相机,它附带的 sdk 提供了视差图。因此我有深度。两个摄像头相互平行。虽然这个问题是微不足道的,但我无法弄清楚转换背后的数学。我有以下信息
1) 我有像素信息(即由 u 和 v 表示的行和列号)和该像素处的深度 D(以米为单位)。
2) 我也知道两台相机的焦距和 cx, cy 值
3)投影B(基线)的两个中心之间的距离是已知的。
我想知道如何从图像中的像素(行、列、深度)到世界坐标中的(X、Y、Z)。
假设世界坐标系的原点为两个相机之间的中心点,垂直于地面下方。(相机的高度称为 H)。
谢谢你。