【问题标题】:OpenCV changes image shape when loading. Why?OpenCV 在加载时会改变图像形状。为什么?
【发布时间】:2014-04-11 10:08:30
【问题描述】:

使用此命令时:

Mat im_gray = imread("C:\\Users\\USER\\Documents\\Blue.jpg", CV_LOAD_IMAGE_GRAYSCALE);

图像不仅被加载,而且它的形状也发生了变化。

这是原图:

这是加载时的结果图像:

如何加载图像,同时保持相同的形状?

【问题讨论】:

  • 不应更改。尝试使用imwrite()再次保存到磁盘进行验证。
  • 试试带 WINDOW_NORMAL 选项的 NamedWindow。

标签: c++ windows opencv


【解决方案1】:

你看到this question了吗?基本上,图像正在改变形状,因为它对于屏幕来说太大了。如果您在imread() 之前旋转图像会发生什么?更好的是,让它像我上面链接的答案一样可扩展,你应该很好。

【讨论】:

  • 我已经看到了链接。我唯一不明白的是 scale_width 和 scale_height 变量中的 img.shape[1] 和 img.shape[0] 。这些算什么。此外,对于 C++ 等价物,可以更改哪些内容?
  • @user3050012 img.shape[1] 是源图像的宽度。 img.shape[0] 是源图像的高度。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-27
  • 2020-09-22
  • 1970-01-01
  • 2021-11-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多