【问题标题】:Imagemagick remove Area of a ImageImagemagick 删除图像的区域
【发布时间】:2020-11-13 14:33:03
【问题描述】:


我想从图像中删除一个区域,但我不确定在哪里查看。
让我举个例子。
来源:https://i.imgur.com/rNFDje9.png
目的地:https://i.imgur.com/m8uZOLJ.png
因此,我从 100x100 像素开始删除了 100x100 的区域。
有人可以指导我在哪里看吗?

非常感谢,

【问题讨论】:

    标签: imagemagick imagemagick-convert


    【解决方案1】:

    我认为您想在图像上绘制一个白色矩形。因此,如果您想要一个 100 像素宽和 20 像素高的白色矩形,从左侧偏移 10 像素,从顶部偏移 20 像素,请使用:

    magick input.png -fill white -draw "rectangle 10,20 110,40" result.png
    

    所以,如果我使用 200x100 洋红色输入图像,我会得到:

    【讨论】:

      【解决方案2】:

      我假设您想要一个透明区域。以下是如何在 Imagemagick 和 Python/OpenCV 中执行此操作。

      将图像转换为包含不透明的 Alpha 通道。然后创建一个带有黑色矩形的白色背景的蒙版。结果应该不透明的地方是白色,应该透明的地方是黑色。然后将遮罩放入图片的alpha通道中。

      输入:

      Imagemagick

      convert barbara3.jpg \( +clone -fill white -colorize 100 -fill black -draw "rectangle 50,50 250,150" \) -alpha off -compose copy_opacity -composite result.png
      

      Python/OpenCV

      import cv2
      import numpy as np
      
      # read image
      img = cv2.imread('barbara3.jpg')
      hh, ww = img.shape[:2]
      
      # convert to image with opaque alpha channel
      imgA = cv2.cvtColor(img, cv2.COLOR_BGR2BGRA)
      
      # create mask of filled black rectangle on white background
      # white for opaque and black for transparent
      mask = np.full((hh,ww), 255, dtype=np.uint8)
      mask = cv2.rectangle(mask, (50,50), (250,150), 0, -1)
      
      # put mask into alpha channel of image
      result = imgA.copy()
      result[:,:,3] = mask
      
      cv2.imwrite('barbara3_mask.png', mask)
      cv2.imwrite('barbara3_transparent_box.png', result)
      
      cv2.imshow("img", img)
      cv2.imshow("mask", mask)
      cv2.imshow("result", result)
      cv2.waitKey(0)
      

      面具:

      结果:

      下载生成的图像,看看它是透明的而不是白色的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-29
        • 1970-01-01
        • 2020-12-16
        • 2019-11-30
        • 1970-01-01
        • 1970-01-01
        • 2017-09-22
        • 1970-01-01
        相关资源
        最近更新 更多