【问题标题】:How do i revert an image back after using np.copy?使用 np.copy 后如何恢复图像?
【发布时间】:2020-02-16 10:32:19
【问题描述】:
def boxing(original_img,predictions)
  newImage = np.copy(original_img)
  for result in predictions:
    .
    .
    .
    return newImage

_, ax = plt.subplots(figsize=(20, 10))
ax.imshow(boxing(imgcv, result))

嘿!我将 np.copy(image) 传递给装箱函数并返回一个 newImage。以上是我的代码的要点,而 ... 部分只是绘制边界框并覆盖 NewImage。如何在函数之后将结果 newImage 转换回其原始形式?

_, ax = plt.subplots(figsize=(20, 10))
new_im = Image.fromarray(boxing(imgcv, result))
ax.imshow(new_im)

据我了解,我应该使用 Image.fromarray 将其转换回来,但我没有成功。我知道这可能是一个愚蠢的问题,但我感谢您的建议!

【问题讨论】:

  • 你想还原函数内部对newImage 所做的所有操作吗?如果是,那你为什么要这样做,不是np.copy() 不是重点吗?更改original_image
  • 我想将原始图像恢复为原始颜色。这些操作是在 np.copy() 上完成的,以绘制用于检测的边界框。对于图像检测,如果它改变了输出图像,那将是一个问题。

标签: python arrays image numpy


【解决方案1】:

我找到了解决方案。问题是图像在 BGR 中。

new_im = cv2.cvtColor(boxing(imgcv, result), cv2.COLOR_BGR2RGB)

这实际上将图像转换回 RGB。希望对您有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-26
    • 2019-05-22
    • 1970-01-01
    • 1970-01-01
    • 2019-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多