【发布时间】:2017-03-28 12:21:14
【问题描述】:
我想在 Python 中构造一个算法,将图像切成 n×n 相等的块。我知道现有的 Python 包可以做到这一点,但我有兴趣使用生成的块的维度执行数学计算,这些维度不必是整数值。
我已使用numpy 和cv2 成功地将我的图像输入转换为ndarray。我很好奇我是否可以以某种方式对ndarray 对象进行切片,这样当我拆分一个“像素”时,我只需将该“像素”对它们各自块的贡献取加权平均值。
例如,如果图像输入的尺寸为 100px x 100px,并且我想将此图像拆分为 7x7 块,因为 100/7 = ~14.2857,每个块的尺寸将为 14.2857 x 14.2857。但是只有一小部分像素是没有意义的。相反,我希望对此进行解释,以便第一个块包含来自像素 (1,1),(1,2),...,(1,14),(2,1),... 的所有信息,(3,1),...,(14,1),... ,(14,14), 满足 (15,k) 和 (k,15) 的所有像素中的 0.2857,像素为 0.2857*0.2857 (15,15)。我希望对所有 49 个区块都这样做。
任何见解将不胜感激!谢谢。
【问题讨论】:
标签: python algorithm numpy image-processing slice