龙岗网站建设网站制作微信官方网站怎么进入
龙岗网站建设网站制作,微信官方网站怎么进入,网站架构设计师工资,seo网站推广专员一、学习目标
了解如何在图片中加入文字了解如何使用鼠标进行图像绘制
二、了解如何通过鼠标进行图像绘制
2.1 了解putText方法的使用
putText方法接收图像#xff0c;文字内容#xff0c; 坐标 #xff0c;字体#xff0c;大小#xff0c;颜色#xff0c;字体厚度这…一、学习目标
了解如何在图片中加入文字了解如何使用鼠标进行图像绘制
二、了解如何通过鼠标进行图像绘制
2.1 了解putText方法的使用
putText方法接收图像文字内容 坐标 字体大小颜色字体厚度这几个参数我们用中文的函数原型说明如下
putText(图像文字内容 坐标 字体大小颜色字体厚度)我们可以首先自定义一张纯黑图片代码如下
import cv2
import numpy as npimgnp.zeros((800,800,3), np.uint8)随后定义一个字体
font cv2.FONT_HERSHEY_SIMPLEX以上是一个黑色简体并且赋值到font变量中。接着我们使用putText参数使用putText参数传入代码如下
cv2.putText(img,Blog 1_bit ebaina csdn,(0,300), font,1,(255,255,255),1)以上代码使用了putText方法传入了img参数为所需要绘制的图像第二个参数为需要显示的内容第三个是显示的其实坐标为(0,300)font表示为字体1表示为字体的大小(255,255,255)为字体的颜色1为字体的厚度。我们接下来查看一下显示效果如何完整代码如下
import cv2
import numpy as npimgnp.zeros((800,800,3), np.uint8)
fontcv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,Blog 1_bit ebaina csdn,(0,300), font,1,(255,255,255),1)
cv2.imshow(Image, img)
cv2.waitKey (0)
cv2.destroyAllWindows()结果如下 我们可以移动其实坐标查看绘制效果例如改成100300结果如下 更改字体大小以及更改字体厚度为2 相比来说在图片上绘制颜色还是比较简单的。 我们也可以通过绘制出好看的图片文字例如 这种图片绘制起来很简单只需要添加一个for循环并且每次改变颜色和大小就可以完成首先我们引入随机库;
import random随后定义一个字体大小变量以及bgr三通道的变量值
fsize2
b,g,r255,255,255接下来使用一个for循环每次循环都改变大小以及bgr三通道值
fsize0.05
brandom.uniform(0,255)
grandom.uniform(0,255)
rrandom.uniform(0,255)所有的完整代码如下
import cv2
import numpy as np
import randomimgnp.zeros((800,800,3), np.uint8)
fontcv2.FONT_HERSHEY_SIMPLEXfsize2
b,g,r255,255,255
for i in range(5):fsize0.05brandom.uniform(0,255)grandom.uniform(0,255)rrandom.uniform(0,255)cv2.putText(img,Blog 1_bit,(100,300), font,fsize,(b,g,r),2)
cv2.imshow(Image, img)
cv2.waitKey (0)
cv2.destroyAllWindows()这样就绘制出来了这种略带动感的图片其实可以通过图片位置的不同变化让文字显示的更有梯度和层次。如改变x的值每次使这个x坐标值向右移动大小不变代码如下
xpoint100
for i in range(5):brandom.uniform(0,255)grandom.uniform(0,255)rrandom.uniform(0,255)xpoint1cv2.putText(img,Blog 1_bit,(xpoint,300), font,2,(b,g,r),2)结果如下 再或者移动x轴同理可得不再赘述代码结果如下 这些效果都是可以移动上下左右坐标去进行位置的变换从而达到不一样的肉眼视觉效果。
2.2 了解setMouseCallback方法的使用
其实setMouseCallback方法就是一个鼠标的回调函数这个函数涉及到事件这个概念。我们可以把事件理解成一种响应触发例如小明吃苹果时、小丽喝奶茶时、小杨唱歌时这些事件可以有一个对应的动作进行处理。例如小明吃苹果时他会开心地手舞足蹈、小丽喝奶茶时会吐掉珍珠、小杨唱歌时他的舍友会说他唱的难听这些事件触发了之后的响应。
setMouseCallback方法就是一个鼠标的事件回调函数。在我们在图片上进行双击时我们若想在双击点进行绘制一个圆形这个时候就需要这个setMouseCallback方法。
setMouseCallback方法接收两个参数一个是要显示的窗口名称还有一个是响应的处理函数。
首先我们创建一个窗口和一张图片
imgnp.zeros((800,800,3), np.uint8)
cv2.namedWindow(image)随后使用setMouseCallback方法响应我们的鼠标事件
cv2.setMouseCallback(image,draw_circle)以上传入的第一个参数是image表示窗口名为image第二个参数是一个方法名当我们鼠标进行操作后我们需要一个函数对这个操作进行后续的响应。这个函数是需要进行创建的我们可以创建出来并且需要传入指定的参数
def draw_circle(event,x,y,flags,param):if eventcv2.EVENT_LBUTTONDBLCLK:cv2.circle(img,(x,y),10,(255,0,0),1)以上函数draw_circle中参数event会直接被setMouseCallback函数进行值的传递x,y,flags,param也是如此。我们先看eventevent是表示你的鼠标进行了那些操作例如eventcv2.EVENT_LBUTTONDBLCLK就表示判断event是否进行了双击事件x与y是当前事件点的鼠标x与y坐标。 在draw_circle函数中使用if语句判断了事件是否是双击事件如果是那么就绘制一个圆圆中心就在双击的x与y坐标处。 最后使用循环以及显示图片显示内容完整代码如下
import cv2
import numpy as npdef draw_circle(event,x,y,flags,param):if eventcv2.EVENT_LBUTTONDBLCLK:cv2.circle(img,(x,y),10,(255,0,0),1)imgnp.zeros((800,800,3), np.uint8)
cv2.namedWindow(image)
cv2.setMouseCallback(image,draw_circle)
while(1):cv2.imshow(image,img)if cv2.waitKey(20)0xFF27:break
cv2.destroyAllWindows()为什么不把setMouseCallback放到循环当中那是因为以及指定了窗口名后就会使这个监听生效于这个窗口之中。运行结果如下 该系列首发于ebaina
三、总结
了解在图片中加入文字使用putText方法并且可以通过位移或者改变大小、颜色增加字体的观感效果了解使用鼠标进行图像绘制使用setMouseCallback方法并且了解了事件是什么
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/86349.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!