在python中,使用某些算法将图像分割为多个超像素后,会产生一个与原图同样大小的标签矩阵。如果想要 *** 作其中某个超像素,即某个聚类中的所有点,可以使用
numpywhere(label_mat == label)
其中label_mat是超像素的标签矩阵,label是想要 *** 作超像素的标签值,这样可以返回二个对应标签值的坐标list,分别对应行坐标和列坐标。(这里以2维图像为例,3维的我也没有试过)
进而可以使用坐标来对原图像相应位置的像素点进行处理。
# -- coding: utf-8 --
__author__ = 'lpe234'
__date__ = '2015-1-14'
from PIL import Image
import ImageDraw
# 打开图像
img = Imageopen('ijpg')
img_d = ImageDrawDraw(img)
# 获取 的 x轴,y轴 像素
x_len, y_len = imgsize
for x in range(0, x_len, 10):
img_dline(((x, 0), (x, y_len)), (0, 0, 0))
for y in range(0, y_len, 10):
img_dline(((0, y), (x_len, y)), (0, 0, 0))
# 保存
imgsave('iijpg')
经测试,同一张,使用 PIL 和 OpenCv 库读取的数据是一样的(经过BGR转成RGB):
执行结果:
建议:可以尝试更新 PIL 或是 OpenCv 库。
本机测试环境: Python 37+Pillow 62 +opencv-python 41
以上就是关于python 超像素分割怎么得到超像素点全部的内容,包括:python 超像素分割怎么得到超像素点、如何使用python在一张图片上画横线和竖线,线条之间相隔10个像素请提供详细代码谢谢!!、为什么用Python的openCV读取图片与PIL读取的图片像素值会不一样等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)