1. 问题
在CT图像上画矩形,cv2虽然画矩形很方便,但是显示CT图的时候灰蒙蒙的(还不知道是什么原因),plt显示CT图像正常,直接用plt画矩形算了
cv2.rectangle(img_slice0, left_xy1, left_xy2, (0, 0, 255)) cv2.imshow("rect",img_slice0) cv2.waitKey(0) cv2.destroyAllWindows()
2. 解决办法
plt显示图像添加矩形
plt.imshow(img_slice0, cmap=plt.cm.gray) # the x in sitk is z in ITKSnap
plt.gca().add_patch(
plt.Rectangle((left_xy1[1], left_xy1[0]), left_xy2[1] - left_xy1[1],
left_xy2[0] - left_xy1[0], fill=False,
edgecolor='r', linewidth=1)) # attention, plt.Rectangle's x is the y for image and y is image's x
plt.show()
特别注意的点:plt.Rectangle()函数里定义的x是水平方向的,y是数值方向的,但是图像定义的xy恰好是反的。所以关于Rectangle参数的说明,第一个(x,y)x应该是矩形左上角点的y坐标,y是x的。
3. 参考
python matplotlib.pyplot画矩形图 以及plt.gca() - 有梦就要去实现他 - 博客园