为什么在绘制灰度图像时OpenCV不应用抗锯齿?

时间:2017-05-17 17:32:09

标签: opencv

这是我用来创建新图像的代码,在其上绘制一个圆圈并显示它:

import numpy as np
import cv2

# create 50x50 image, filled with white
img = np.ones((50,50))
# draw a circle onto the image
cv2.circle(img, (25,25), 10, 0, 2, lineType=cv2.LINE_AA)
# show the image on the screen
cv2.imshow("i", img)
cv2.waitKey(0)                                                                                                                                                                                                 
cv2.destroyAllWindows()                                                                                                                                                                                        

然而,似乎没有应用抗锯齿(我对图像x10进行了升级): enter image description here

我做错了什么?

1 个答案:

答案 0 :(得分:4)

如果图片深度不是CV_8U,则line_type会自动设置为8

来自opencv/modules/imgproc/src/drawing.cpp

if( line_type == CV_AA && img.depth() != CV_8U )
    line_type = 8;

由于numpy.ones的类型默认为numpy.float64,您将失去抗锯齿线。