2017-05-17 23 views
1

は、私は、新しいイメージを作成し、その上に円を描き、それを表示するために使用するコードです:グレイスケールイメージで描画するときに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

私は間違って何をしていますか?

答えて

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.float64からnumpy.onesデフォルトのタイプ以来、あなたはアンチエイリアスラインを失っています。

関連する問題