大家都说C/C++ 时最难的语言,可是对于用习惯C /C++ 的人来说还是比较容易的。这个容易不是说我可以随意使用C 进行操作,而是自己脑袋里所有的知识都是对 C 操作的。现在右由 C 换成 python 还真的是不太习惯。好多熟悉的操作一下变得陌生。所以这里记录一下用 python 进行图像处理的基本操作。-----> 会持续更新
(1) 获取图片某一像素点的 (R,G,B)值
from PIL import Image
imagepath='/media/dell/Projects/test/US08621824-20140107-M00004-1-1.jpg'
img = Image.open(imagepath)
if img.mode not in ('L', 'RGB'):
img = img.convert('RGB')
r, g, b = img.getpixel((10, 10))
(2)获取投影矩阵(对二值化图片)
#依据图片像素颜色计算X轴投影
def Caculate_X(im):
Image_Value=[]
for i in range(im.size[0]):
Y_pixel=0 #计算完每一列之后对其进行初始化
for j in range(im.size[1]): #在Y轴上遍历每一个像素点
if (im.getpixel((i,j))==0): #判断像素点的值
temp_value=1 #像素值为0的记为1
else:
temp_value=0 #像素值为1的记为0
Y_pixel =Y_pixel+ temp_value #累加得到在X轴的投影值
Image_Value.append(Y_pixel) #将得到每一个投影值放入列表中
return Image_Value #返回像素值列表
#依据图片像素颜色计算Y轴投影
def Caculate_Y(im1):
Image_Value1=[]
for m in range(im1.size[1]):
X_pixel=0
for n in range(im1.size[0]):
if (im1.getpixel((n,m))==0):
temp_value1=1
else:
temp_value1=0
X_pixel = X_pixel+temp_value1
Image_Value1.append(X_pixel)
return Image_Value1
(3) 图片反色
from PIL import Image,ImageOps
imagepath='/media/dell/Projects/test/US08621824-20140107-M00004-1-1.jpg'
img = Image.open(imagepath)
if img.mode not in ('L', 'RGB'):
img = img.convert('RGB')
img = ImageOps.invert(img)
Image._show(img)