忽略灰度转换上的方向时,OpenCV对齐图像失败

2024-09-27 04:28:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Python和OpenCV对齐图像using the code found here。除了OpenCV在最终输出中尊重EXIF图像旋转值外,这一切都很好。当两个图像在OpenCV查看器中完全对齐时,保存的图像将旋转180度到第二个图像。我使用QGIS处理数据,OpenCV对齐的图像与对齐的图像旋转180度

发现我可以修改代码,在第一次打开图像时忽略图像旋转,如下所示

 im1 = cv2.imread(path_to_image_1, cv2.IMREAD_IGNORE_ORIENTATION)

 im1_gray = cv2.cvtColor(im1, cv2COLOR_BGR2GRAY)

这很好,但当我得到下一段将图像转换为灰度的代码时,我会收到错误消息

  File "/home/gerry/Python/GeotaggedImageFootprintsToShp/OpenCV_Image_Alignment.py", line 17, in <module>
  im1_gray = cv2.cvtColor(im1,cv2.COLOR_BGR2GRAY)

cv2.error: OpenCV(4.5.1) /tmp/pip-req-build-ms668fyv/opencv/modules/imgproc/src/color.simd_helpers.hpp:92: error: (-2:Unspecified error) in function 'cv::impl:    
{anonymous}::CvtHelper<VScn, VDcn, VDepth, sizePolicy>::CvtHelper(cv::InputArray, cv::OutputArray, int) [with VScn = cv::impl::{anonymous}::Set<3, 4>; VDcn = cv::impl::
{anonymous}::Set<1>; VDepth = cv::impl::{anonymous}::Set<0, 2, 5>; cv::impl::{anonymous}::SizePolicy sizePolicy = cv::impl::<unnamed>::NONE; cv::InputArray = const cv::_InputArray&; cv::OutputArray = const cv::_OutputArray&]'
> Invalid number of channels in input image:
> 'VScn::contains(scn)'
> where
> 'scn' is 1

如何在最终保存的图像中忽略图像旋转,仍然将打开的图像转换为灰度


Tags: 代码in图像imageerrorcv2opencvcv

热门问题