Python 图像提取:根据黑色区域坐标从另一图像中裁剪
要实现这个功能,可以使用Python的PIL库(Pillow)来处理图像。\n\n首先,需要读取A图中黑色部分的像素坐标信息。可以使用PIL库中的Image模块来打开A图,并使用Image模块的getdata()方法获取图像的像素数据。然后遍历像素数据,找到黑色像素的坐标信息。\n\n接下来,需要打开B图,并根据A图中的坐标信息提取出对应的像素。可以使用Image模块的crop()方法来裁剪图像。\n\n下面是一个示例代码:\n\npython\nfrom PIL import Image\n\n# 打开A图\nimage_a = Image.open('A.png')\n\n# 获取A图的像素数据\npixels = list(image_a.getdata())\nwidth, height = image_a.size\n\n# 遍历像素数据,找到黑色像素的坐标信息\nblack_pixels = []\nfor i in range(height):\n for j in range(width):\n pixel = pixels[i * width + j]\n if pixel == (0, 0, 0): # 假设黑色像素的RGB值为(0, 0, 0)\n black_pixels.append((j, i))\n\n# 打开B图\nimage_b = Image.open('B.png')\n\n# 根据A图中的坐标信息提取出B图的像素\ncropped_image = image_b.crop((min(black_pixels)[0], min(black_pixels)[1], max(black_pixels)[0], max(black_pixels)[1]))\n\n# 保存提取后的图像\ncropped_image.save('result.png')\n\n\n请注意,示例代码中假设黑色像素的RGB值为(0, 0, 0),如果实际情况不同,需要根据实际情况修改代码中的判断条件。\n\n另外,示例代码中使用了min()和max()函数来获取黑色像素的最小和最大坐标,然后传递给crop()方法进行裁剪。如果黑色部分不是连续的,可以根据实际需求修改裁剪的坐标。
原文地址: https://www.cveoy.top/t/topic/qiBe 著作权归作者所有。请勿转载和采集!