Python与Numpy实现灰度图像分块及合并的完整代码解析
本文介绍了利用Python和Numpy库对灰度图像进行分块处理与合并的方法。通过读取图像并转换为灰度模式,将图像划分为多个子块保存,随后按特定逻辑重新组合成完整图像。代码展示了使用OpenCV和PIL库进行图像读写及格式转换的具体步骤,包含完整的分块遍历与合并逻辑。
为节省篇幅,此处直接展示核心实现代码。
from numpy import * import numpy as np import cv2, os, math, os.path from PIL import Image base="F:\\Spy_CNN\\pythonCode\\cvSPY\\cvTest\\LBP\\LBPImag3\\" base2="F:\\ProgrameCode\\FaceDataLib\\orl_Arry\\" imageOld=cv2.imread(base2+"s1_1.bmp") image=cv2.cvtColor(imageOld,cv2.COLOR_BGR2GRAY) '''图像的合成''' H,W=image.shape#(112, 92) kuai=5 a=1#为了好调程序 maskx,masky = H/kuai,W/kuai #29 14 toImage=np.zeros((H+(kuai-1)*a,W+(kuai-1)*a)) toImage.shape #您画画图,总结规律,就可以想出来了 for i in range(kuai): for j in range(kuai): '''float64 array''' faceZi=image[int(i*maskx): int((i+1)*maskx),int(j*masky) :int((j+1)*masky)] cv2.imwrite(base+str(i)+str(j)+".bmp",faceZi) # toImage[int(i*maskx)+a: int((i+1)*maskx)+a,int(j*masky)+a :int((j+1)*masky)+a]=faceZi toImage[int(i*maskx)+i: int((i+1)*maskx)+i,int(j*masky)+j :int((j+1)*masky)+j]=faceZi cv2.imwrite(base+"toImage.bmp",toImage) #最简单的,直接在灰度图像上画出一条黑线,只是会丢失一些像素的数据 for i in range(1,kuai): print(i) toImage[int(i*maskx),:]=0 toImage[:,int(i*masky)]=0 cv2.imwrite(base+"toImage.bmp",toImage)
以上内容即为利用Python和Numpy实现灰度图像分块与合并的完整示例,旨在为读者提供实践参考。欢迎对相关内容感兴趣的朋友支持本站,获取更多技术分享。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









