【问题标题】:Creating a new folder upon image modification在图像修改时创建一个新文件夹
【发布时间】:2021-12-03 13:38:58
【问题描述】:

我应该编写一个函数,从给定路径读取所有图像,从图像中删除绿色通道,并将其写入新图像。

我设法放弃绿色通道并编写修改,但目前原始图像正在被覆盖。

我如何修改下面的代码来编写新文件的功能?

def drop_green_from_path(path):
    for i in path:
        src = cv2.imread(i,cv2.IMREAD_UNCHANGED)
        #
        # assign green channel to zeros
        src[:,:,1] = np.zeros([src.shape[0], src.shape[1]])

        #save image
        cv2.imwrite(i ,src)

# will be changed later to be more global for now its at test on my laptop
DATA_IMAGES_PATHS= glob.glob('../data/train/train-1-0/*.png')
drop_green_from_path(DATA_IMAGES_PATHS)

【问题讨论】:

    标签: python computer-vision


    【解决方案1】:

    您必须在 cv2.imwrite 中重新定义路径。也就是说,

    import os
    
    filesplit = os.path.split(i)
    file_name = os.path.splitext(filesplit[1])[0]
    file_ext = os.path.splitext(i)[1].lower()
    
    file_name = file_name + "_modified" + file_ext
    
    path = os.path.join(filesplit[0], file_name)
    
    cv2.imwrite(path ,src)
    

    【讨论】:

      【解决方案2】:

      这样就可以了

      import os, cv2
      import numpy as np
      def drop_greens(path):
          filenames = glob.glob(f'{path}/*.tif') # your extension(s)
          for filename in filenames:
              img = cv2.imread(filename)
              name = filename.split('.')[0]
              img[...,1]=0
              cv2.imwrite(f'{name}_modified.tif', img)
      drop_greens(yourPath) 
      

      【讨论】:

      • 如果这个答案有用,请采纳并点赞。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-08
      • 2021-05-29
      • 1970-01-01
      相关资源
      最近更新 更多