python图像中如何 绘制矩形,编辑文案,保存结果图片等操作

发布时间 2023-11-30 15:00:24作者: 苹果芒

python版opencv函数学习笔记-cv.rectangle()全参数理解

cv2.rectangle(img, pt1, pt2, color, thickness=None, lineType=None, shift=None )

以下来自官方文档和自己的理解

  • img:指定一张图片,在这张图片的基础上进行绘制;
  • pt1: 矩形的一个顶点;
  • pt2: 与pt1在对角线上相对的矩形的顶点;

 

  • 注意:pt1和pt2并不严格代表着左上角和右上角的点,可以互换的。

color:指定边框的颜色,由(B,G,R)组成,当为(255,0,0)时为绿色,可以自由设定;

  • thinkness:线条的粗细值,为正值时代表线条的粗细(以像素为单位),为负值时边框实心;
  • lineType :关于选择线条生成算法的。详见:http://t.csdn.cn/HjDK6
  • shift :

    作用(根据效果图的个人理解):对点坐标进行左移的位运算,即对点坐标除以(2^shift)

    参数范围:shift>=0
    该参数示范代码(函数中最后一个参数为shift):
    两个角点分别为(200,200),(0,0)

代码:

import cv2 as cv
 
#image = np.zeros((512,512,3),dtype=np.uint8)
#读取某个路径下的图片
image_path="E:\\Test\\SourceImage\\test.png"
img = cv.imread(image_path)

#指定颜色 cv.rectangle(image, (
200,200), (0,0), (0,0,255), 1, cv.LINE_8, 3)#红 cv.rectangle(image, (200,200), (0,0), (0,255,0), 1, cv.LINE_8, 2)#绿 cv.rectangle(image, (200,200), (0,0), (255,0,0), 1, cv.LINE_8, 1)#蓝 cv.rectangle(image, (200,200), (0,0), (0,255,255), 1, cv.LINE_8, 0)#黄 #设置随机颜色 color_r = 0 color_g = random.randint(100, 255) color_b = random.randint(100, 255) # draw box,颜色随机 cv.rectangle(image, first_point, last_point, (color_r, color_g, color_b), 2) #在图片上添加文字(cv.putText()) text_value="TestData" font_size=3  if font_size <= 1:    cv.putText(img, text_value, (xmin, ymin+ 10), cv.FONT_HERSHEY_PLAIN, font_size,(color_r, color_g, color_b), 1)   else:    cv.putText(img, text_value, (xmin, ymin + 25), cv.FONT_HERSHEY_PLAIN, font_size,(color_r, color_g, color_b), 3) #把绘制好的图片保存到某个路径下: new_img_path="E:\\Test\Data\Image" cv.imwrite(new_img_path, img) #查看是否读取成功 cv.imshow("image", image)#显示图片 cv.waitKey(0) cv.destroyAllWindows()