引言
在观察OpenCV中某个函数在不同参数的情况下,所得到的效果的时候,我之前是改一次参数运行一次,这样做起来操作麻烦,效率低下。为了更便捷的观察参数变化时带来的处理效果改变 可以使用滑动条来改变参数
具体思路
- 使用cv2.createTrackbar()创建滑动条,有几个参数就创建几个
- 对每个参数定义回调函数
- 在回调函数中显示图片
注意 滑动条的窗口名称 要与 图片显示的窗口名字相同
代码实现
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
import cv2
d = 0
color = 0
space = 0
def change_d(x):
d = x
blur = cv2.bilateralFilter(img,d,color,space)
cv2.imshow( "myImg" ,blur)
def change_color(x):
color = x
blur = cv2.bilateralFilter(img,d,color,space)
cv2.imshow( "myImg" ,blur)
def change_space(x):
space = x
blur = cv2.bilateralFilter(img,d,color,space)
cv2.imshow( "myImg" ,blur)
img = cv2.imread( 'car2.jpeg' )
cv2.namedWindow( 'myImg' )
cv2.createTrackbar( 'd' , 'myImg' , 1 , 500 ,change_d)
cv2.createTrackbar( 'color' , 'myImg' , 1 , 500 ,change_color)
cv2.createTrackbar( 'space' , 'myImg' , 1 , 500 ,change_space)
while ( 1 ):
k = cv2.waitKey( 1 )& 0xFF
if k = = 27 :
break
d = cv2.getTrackbarPos( 'd' , 'myImg' )
color = cv2.getTrackbarPos( 'color' , 'myImg' )
space = cv2.getTrackbarPos( 'space' , 'myImg' )
cv2.destroyAllWindows()
|
效果展示
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://segmentfault.com/a/1190000019694153