基于csv-fi坐标从图像中裁剪片段

2024-09-28 01:33:33 发布

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

我有一个由几个细胞组成的图像(像任何一般形式)。我在csv文件中提供了坐标,其中有我需要裁剪的部分图像的roi,并将其保存为一个新文件,其中图像文件名为文件夹名,坐标单元名为图像名。在

我可以使用pil库中的crop单独裁剪图像,但我不确定如何从图像中提取多个细胞的坐标数据,并基于图像中的裁剪roi。在

import glob,os,sys
from PIL import Image

class ROIExtraction:
    def readImages(inputFolder):
        ext = ['.png', '.jpg', '.gif', '.jpeg', '.tif', '.tiff']
        files = []
        path = inputFolder + "/*.*"
        files = glob.glob(path)
        imageFiles=[]
        for i in files:
                exten=os.path.splitext(i)[1]
                if exten in ext:
                        imageFiles.append(i)
        return imageFiles

   def processRoi(imageFiles):
        for imagePath in imageFiles:
            img_name = os.path.splitext(os.path.basename(imagePath))[0]
            output_folder = sys.argv[2]+'/'+img_name+'/'
            os.makedirs(output_folder, exist_ok=True)

            # import image
            image = Image.open(imagePath)
            img2 = image.crop((1385,45,2256,149))
            img2.show()
            img2.save(output_folder+'{}.png')



imageFiles = ROIExtraction.readImages(sys.argv[1])
ROIExtraction.processRoi(imageFiles)

在上面的代码中,我手动输入了坐标,但我想写一个程序,从csv文件中提取坐标,并在此基础上从图像中裁剪出感兴趣区域。在

以下是csv文件内容的示例-

^{pr2}$

Tags: 文件csvpathin图像importoutputos

热门问题