opencv—python基本的图像操作指令

opencv—python基本的图像操作指令

  • 1. 读取图像:`cv.imread()`
  • 2. 显示图像:`cv.imshow()`
  • 3. 储存图像:`cv.imwrite()`
  • 4. 缩放图像:`cv.resize()`
  • 5. 裁剪图像:`image[a:b,c:d]`
  • 6. 补边图像:`cv.copyMakeBorder()`
  • 7. RGB转化成HSV图像
  • 8. 图像镜像:`cv.flip()`
  • 9.复制图像:`copy()`
  • 10. 压缩图像:`cv.IMWRITE_PNG_COMPRESSION`

1. 读取图像:cv.imread()

例如:

image_dir='./data/xxx.jpg'
image = cv2.imread(image_dir)
# 读取单通道(灰度图)
gray_img=cv2.imread('4.jpg',cv2.IMREAD_GRAYSCALE)

2. 显示图像:cv.imshow()

例如:

#创建一个窗口
cv2.namedWindow("Image")
#然后在窗口中显示图像img
cv2.imshow("Image", img)
cv2.waitKey (0)

3. 储存图像:cv.imwrite()

例如:

#将图像img保存
cv2.imwrite('xxx.jpg',img)
# 指定jpg质量,范围从1~100,默认95,值越高画质越好,文件越大
cv2.imwrite('xxx.jpg',color_img,(cv2.IMWRITE_JPEG_QUALITY,20))

4. 缩放图像:cv.resize()

例如:

img=cv2.imread('xxx.jpg')
# 缩小为200x200的正方形
img_200x200=cv2.resize(img,(200,200))

5. 裁剪图像:image[a:b,c:d]

例如:

a=10 # x start
b=50 # x end
c=40 # y start
d=70 # y end
cropImg = image[a:b,c:d]   #裁剪图像
cv2.imwrite('cut.jpg',cropImg)  #写入图像路径

6. 补边图像:cv.copyMakeBorder()

例如:

# 上下各贴50像素的黑边
img_add=cv2.copyMakeBorder(img,50,50,0,0,cv2.BORDER_CONSTANT,value=(0,0,0))

7. RGB转化成HSV图像

可以通过HSV空间对色调和明暗进行调节。
HSV分别是色调(Hue),饱和度(Saturation)和明度(Value)。
在HSV空间中进行调节就避免了直接在RGB空间中调节是还需要考虑三个通道的相关性。
OpenCV中H的取值是[0, 180),其他两个通道的取值都是[0, 256)。

例如:

img=cv2.imread('xxx.jpg')
# 通过cv2.cvtcolor把图像从RGB转到HSV
img_hsv=cv2.cvtColor(img,cv2.COLOR_BGR2HSV)

8. 图像镜像:cv.flip()

例如:

#python 图像翻转,使用openCV flip()方法翻转
xImg = cv.flip(img,1,dst=None) #水平镜像
xImg1 = cv.flip(img,0,dst=None) #垂直镜像
xImg2 = cv.flip(img,-1,dst=None) #对角镜像

9.复制图像:copy()

例如:

#复制图像img
Image2 = img.copy();

10. 压缩图像:cv.IMWRITE_PNG_COMPRESSION

对于PNG,第三个参数表示的是压缩级别。cv2.IMWRITE_PNG_COMPRESSION,从0到9,压缩级别越高,图像尺寸越小。默认级别为3:
(压缩是指图像尺寸不变,但是分辨率变小,即变得模糊)
例如:

cv2.imwrite("./cat.png", img, [int(cv2.IMWRITE_PNG_COMPRESSION), 0]) 
cv2.imwrite("./cat2.png", img, [int(cv2.IMWRITE_PNG_COMPRESSION), 9])

opencv—python基本的图像操作指令_第1张图片

你可能感兴趣的:(代码,opencv,python)