当前位置:   article > 正文

OpenCV图像处理基础操作汇总_opencv 能读jpg格式图片吗

opencv 能读jpg格式图片吗

1、使用opencv读写图像

OpenCV支持jpg、png、tif等格式图像读取。

  1. import cv2
  2. import matplotlib.pyplot as plt
  3. path = ‘lena.jpg’
  4. img = cv2.imread(path)
  5. cv2.imwrite(‘lena1.jpg’, img)

2、BGR转RGB

opencv是按照bgr方式读取图像,而plt按照rgb格式显示图像,因此会出现显示异常。为了正常显示,需要进行顺序转换,由BGR转为RGB。

使用opencv:

img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

使用矩阵操作:

img = img[:, :, ::-1]

  1. import cv2
  2. import matplotlib.pyplot as plt
  3. import numpy
  4. path = 'lena.jpg'
  5. img = cv2.imread(path)
  6. img = cv2.cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
  7. plt.imshow(img)
  8. plt.show()

3、获取图像宽高

height, width = img.shape[:2]

或者

img_shape = img.shape

height = img_shape[0]

width = img_shape[1]

4、调整图像尺寸

cv2.resize(img, (height, width), cv2.INTER_LINEAR)

第一个参数为原始图像,第二个为调整后尺寸,第三个为插值算法设置,INTER_NEAREST、INTER_LINEAR、INTER_CUBIC分别为最邻近插值、双线性插值、双三次插值。

  1. import cv2
  2. import matplotlib.pyplot as plt
  3. import numpy
  4. path = 'lena.jpg'
  5. img = cv2.imread(path)
  6. img = cv2.cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
  7. img = cv2.resize(img, (300, 200), cv2.INTER_LINEAR)
  8. plt.imshow(img)
  9. plt.show()

5、将图像转换为python字节

  1. import cv2
  2. path = 'lena.jpg'
  3. img = cv2.imread(path)
  4. byteArray = bytearray(img)
  5. print(byteArray)

6、将图像一部分区域拷贝到另一部分。

  1. import cv2
  2. import matplotlib.pyplot as plt
  3. path = 'lena.jpg'
  4. img = cv2.imread(path)
  5. img = img[:, :, ::-1]
  6. image_block = img[0:100, 0:100]
  7. img[200:300,200:300] = image_block
  8. plt.imshow(img)
  9. plt.show()

 

7、使用canny提取边缘

  1. import cv2
  2. import matplotlib.pyplot as plt
  3. path = 'lena.jpg'
  4. img = cv2.imread(path)
  5. img = cv2.Canny(img, 100, 150)
  6. plt.imshow(img)
  7. plt.show()

 

8、在图像上绘制矩形框

cv2.rectangle(img, (350, 120), (470, 520), (0, 255, 0), 2)

第一个参数为原图,第二和第三个参数为图像左上角和右下角坐标,第四个参数为线框颜色,第五个参数为线宽。

  1. import cv2
  2. import matplotlib.pyplot as plt
  3. import numpy
  4. path = 'person.jpg'
  5. img = cv2.imread(path)
  6. img = cv2.rectangle(img, (350, 120), (470, 520), (0, 255, 0), 2)
  7. plt.imshow(img)
  8. plt.show()

9、镜像变换

水平镜像:img = cv2.flip(img,1,dst=None)

垂直镜像:img = cv2.flip(img,0,dst=None)

对角镜像:img = cv2.flip(img,-1,dst=None)

10、图像滤波

均值滤波:dst = cv2.blur(img, [5, 5])

中值滤波:dst = cv2.medianBlur(img, 7)

双边滤波:dst = cv2.bilateralFilter(img, 10, 30, 30)

11、图像添加文字

cv2.putText(img, text, (x, y), cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0, 255, 0), 2,)

参数说明:原始图像,文字,坐标(左上角),字体,字体大小、颜色、字体线条粗细

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号