将nd2图像转换为彩色png

2024-09-28 22:12:20 发布

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

我使用此代码从nd2文件中获取两个图像(每个通道)。 当前图像为黑白,对比度增强

from nd2reader import ND2Reader
from PIL import Image, ImageEnhance
import sys, getopt, os

argv = sys.argv[1:]

def saveImage(imageData, path):
  im = Image.fromarray(imageData)
  im.mode = 'I'
  convertedImage = im.point(lambda i: i * (1. / 256)).convert('L')

  contrastEnhancer = ImageEnhance.Contrast(convertedImage)

  im_output = contrastEnhancer.enhance(10)
  im_output.save(path, "PNG")


def convertImage(inputFile):

  fileName = os.path.splitext(inputFile)[0]

  with ND2Reader(inputFile) as images:
    greenFrame = images.get_frame(0)
    redFrame = images.get_frame(1)

    saveImage(greenFrame, fileName + "_green.png")
    saveImage(redFrame, fileName + "_red.png")


def main(argv):
  inputfile = ''

  try:
    opts, args = getopt.getopt(argv, "hi:", ["ifile="])
  except getopt.GetoptError:
    print('test.py -i <inputfile>')
    sys.exit(2)

  if(len(opts) < 1):
    print('test.py -i <inputfile>')
    sys.exit(2)

  for opt, arg in opts:
    if opt == '-h':
      print ('test.py -i <inputfile> -o <outputfile>')
      sys.exit()
    elif opt in ("-i", "--ifile"):
      inputfile = arg

  convertImage(inputfile)


main(argv)

我无法获得彩色图像。。。nd2中的图像为绿色或红色。我想在最后的png以及全彩

我尝试了很多东西。当然,删除convert('L')、将im.mode更改为RGB或将mode=RGB添加到fromarray方法

我收到了不同的错误消息,比如ValueError: image has wrong mode,或者最后的图像是黑色的

有人知道问题出在哪里吗? 多谢各位


Tags: path图像importpngmodedefsysfilename