#读图,显示的代码

import cv2
# 读取图像
img = cv2.imread(r'C:/labs/opencvtest/1.jpg', cv2.IMREAD_COLOR) #第一个参数是路径,第二个参数是读取方式,这里也可以写成1,三通道读取图片
# 创建窗口
cv2.namedWindow('opencv', cv2.WINDOW_NORMAL) #第一个参数是窗口名字,第二个参数是呈现方式,这里表示自定义,WINDOW_AUTOSIZE表示自适应
# 设置窗口大小
cv2.resizeWindow('opencv', 1200, 800) #参数分别是(窗口名称,宽, 高)
# 显示图像
cv2.imshow('opencv', img) #第一个参数是窗口名字,第二个参数是要显示的图像,见line3,即imread读取的图像名字
# 保存图像
cv2.imwrite(r'C:/labs/opencvtest/2.jpg', img)
# 等待时间
cv2.waitKey() #如果x=0,那么无限等待下去,直到有按键按下.
# 销毁指定窗口
cv2.destroyWindow('opencv')
# 销毁所有窗口
# cv2.destroyAllWindows()

#画框的代码

#利用opencv画框图

import cv2  #调用opencv模块

imgpath = "C:/labs/opencvtest/1.jpg" #写入路径
img = cv2.imread(imgpath)  #读取图像
print(img.shape) #查看图片尺寸

"""
在图片的指定位置加边框,左上角的像素坐标是(100,100)
右下角的像素坐标是(500,500)
且一定注意,像素坐标值都是正整数
(0,255,0)表示边框颜色是绿色
3表示边框的线宽度为3
"""

cv2.rectangle(img,(500,100),(1000,500),(0,255,0),3)
cv2.imshow("Image", img)   #显示图片
cv2.waitKey (0)  #边框等待时长
cv2.destroyAllWindows() #关闭所有边框
cv2.imwrite("C:/labs/opencvtest/3.jpg", img) #导出图片,注意新的文件不要与原图重名,否则会覆盖原图

#裁剪的代码

  • 固定位置剪裁
#调用opencv
import cv2

# 读取图像
img = cv2.imread(r'C:/labs/opencvtest/1.jpg', cv2.IMREAD_COLOR)
# ROI获取,如果对图像的某一区域感兴趣,可使用切片方式获取。
roi = img[200:400, 300:500]
# 创建窗口
cv2.namedWindow('opencv', cv2.WINDOW_NORMAL)
# 设置窗口大小(窗口名称,(宽, 高))
cv2.resizeWindow('opencv', (350, 400))
# 显示图像
cv2.imshow('opencv', roi)
# 等待时间
cv2.waitKey()
# 销毁窗口
cv2.destroyAllWindows()

  • 自定义剪裁
import cv2 #调用opencv

imgpath = '1.jpg' #写入路径
img = cv2.imread(imgpath) #读取照片
cv2.imshow('original', img) #显示照片

#选择roi区域
roi = cv2.selectROI(windowName="original", img=img, showCrosshair=True, fromCenter=False) # 选择ROI区域
x, y, w, h = roi #将选择的roi区域转换成坐标,x,y为ROI的坐标,w,h为ROI的大小
print(roi) #输出roi区域的坐标

# 显示ROI并保存图片
if roi != (0, 0, 0, 0):  
    crop = img[y:y+h, x:x+w] #切片获取roi区域
    cv2.imshow('crop', crop) #显示roi区域
    cv2.imwrite('crop.jpg', crop) #保存roi区域
    print('Saved!') #输出保存成功


cv2.waitKey(0) #边框等待时长
cv2.destroyAllWindows() #关闭所有边框

如若刚入门的小白看不懂程序,可以查看链接:在实战中学习python语法_vitalgirl的博客-CSDN博客
该链接把各个函数解释的很清楚,对小白十分友好。

更多推荐

自学python(2):利用opencv实现读图,显示,画框,裁剪的python代码