当前位置:   article > 正文

python编程 numpy图片处理、矩阵操作_python图像处理

python图像处理

目录

一:垂直方向翻转(行逆序)

二:水平方向翻转(列逆序)

三:垂直、水平方向翻转(行、列逆序)

四:调整亮度,变明亮*2.0

五:调整亮度,变暗

六:垂直方向裁剪

七:水平方向裁剪

八:两个方向同时裁剪,保留左上角

九:高度方向 每隔一行取像素点

十:宽度方向 每隔一列取像素点

十一:缩略图 高、宽度方向压缩 清晰度较差

十二:灰度处理


一:垂直方向翻转(行逆序)

  1. import numpy as np
  2. import cv2
  3. img_mat = cv2.imread("dog.jpg")
  4. # 沿着X轴对称 行序列
  5. img1 = img_mat[::-1, :, :] # 行索引区间,列索引区间,通道区间
  6. cv2.imshow("dog", img_mat)
  7. cv2.imshow("X", img1)
  8. cv2.waitKey(0)
  9. cv2.destroyAllwindows()

二:水平方向翻转(列逆序)

  1. import numpy as np
  2. import cv2
  3. img_mat = cv2.imread("dog.jpg")
  4. # 沿着y轴对称 列序列
  5. img2 = img_mat[:, ::-1, :] # 行索引区间,列索引区间,通道区间
  6. cv2.imshow("dog", img_mat)
  7. cv2.imshow("Y", img2)
  8. cv2.waitKey(0)
  9. cv2.destroyAllwindows()

三:垂直、水平方向翻转(行、列逆序)

  1. import numpy as np
  2. import cv2
  3. img_mat = cv2.imread("dog.jpg")
  4. # 沿着原点对称 行、列序列
  5. img3 = img_mat[::-1, ::-1] # 行索引区间,列索引区间,通道区间
  6. cv2.imshow("dog", img_mat)
  7. cv2.imshow("0.0", img3)
  8. cv2.waitKey(0)
  9. cv2.destroyAllwindows()

四:调整亮度,变明亮*2.0

  1. import numpy as np
  2. import cv2
  3. img_mat = cv2.imread("dog.jpg")
  4. # 明亮
  5. img4 = np.clip(img_mat * 1.5, a_min=0., a_max=255.).astype(np.uint8)
  6. cv2.imshow("dog", img_mat)
  7. cv2.imshow("light", img4)
  8. cv2.waitKey(0)
  9. cv2.destroyAllwindows()

五:调整亮度,变暗

  1. import numpy as np
  2. import cv2
  3. img_mat = cv2.imread("dog.jpg")
  4. # 暗
  5. img4 = (img_mat * 0.5).astype(np.uint8)
  6. cv2.imshow("dog", img_mat)
  7. cv2.imshow("black", img4)
  8. cv2.waitKey(0)
  9. cv2.destroyAllwindows()

六:垂直方向裁剪

  1. import numpy as np
  2. import cv2
  3. img_mat = cv2.imread("dog.jpg")
  4. # 垂直裁剪
  5. height = img_mat.shape[0]
  6. width = img_mat.shape[1]
  7. img5 = img_mat[int(height / 2)::, :, :]
  8. cv2.imshow("dog", img_mat)
  9. cv2.imshow("vertical cut", img5)
  10. cv2.waitKey(0)
  11. cv2.destroyAllwindows()

七:水平方向裁剪

  1. import numpy as np
  2. import cv2
  3. img_mat = cv2.imread("dog.jpg")
  4. # 垂直裁剪
  5. height = img_mat.shape[0]
  6. width = img_mat.shape[1]
  7. img5 = img_mat[:, int(width/2)::, :]
  8. cv2.imshow("dog", img_mat)
  9. cv2.imshow("vertical cut", img5)
  10. cv2.waitKey(0)
  11. cv2.destroyAllwindows()

八:两个方向同时裁剪,保留左上角

  1. import numpy as np
  2. import cv2
  3. img_mat = cv2.imread("dog.jpg")
  4. # 左上方点(50,0) width:250 height:100
  5. img6 = img_mat[0:100, 50:50 + 250]
  6. cv2.imshow("dog", img_mat)
  7. cv2.imshow("vertical cut", img6)
  8. cv2.waitKey(0)
  9. cv2.destroyAllwindows()

九:高度方向 每隔一行取像素点

  1. import numpy as np
  2. import cv2
  3. img_mat = cv2.imread("dog.jpg")
  4. # 高度方向每隔一行取像素点
  5. img8 = img_mat[::2]
  6. cv2.imshow("dog", img_mat)
  7. cv2.imshow("slice height", img8)
  8. cv2.waitKey(0)
  9. cv2.destroyAllwindows()

十:宽度方向 每隔一列取像素点

  1. import numpy as np
  2. import cv2
  3. img_mat = cv2.imread("dog.jpg")
  4. # 宽度方向每隔一列取像素点
  5. img8 = img_mat[:, ::2]
  6. cv2.imshow("dog", img_mat)
  7. cv2.imshow("slice weight", img8)
  8. cv2.waitKey(0)
  9. cv2.destroyAllwindows()

十一:缩略图 高、宽度方向压缩 清晰度较差

  1. import numpy as np
  2. import cv2
  3. img_mat = cv2.imread("dog.jpg")
  4. # 缩略图
  5. img8 = img_mat[::2, ::2]
  6. cv2.imshow("dog", img_mat)
  7. cv2.imshow("slice img", img8)
  8. cv2.waitKey(0)
  9. cv2.destroyAllwindows()

十二:灰度处理

  1. import numpy as np
  2. import cv2
  3. img_mat = cv2.imread("dog.jpg")
  4. # 灰度处理:加权求和 BGR
  5. # gray = r*0.299 + g*0.587 + b*0.114 加权求和
  6. img8 = img_mat[:, :, 2] * 0.299 + img_mat[:, :, 1] * 0.587 + img_mat[:, :, 0] * 0.114
  7. img8 = img8.astype(np.uint8)
  8. print(img8)
  9. cv2.imshow("dog", img_mat)
  10. cv2.imshow("gray img", img8)
  11. cv2.waitKey(0)
  12. cv2.destroyAllwindows()

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/950125
推荐阅读
相关标签
  

闽ICP备14008679号