first commit
This commit is contained in:
1 parent
ae53e9eac5
commit
91cbd01126
514 files changed
+55625
-2203
No files matched your search
Executable
+96
@@ -0,0 +1,96 @@
|
||||
import os
|
||||
import sys
|
||||
|
||||
#if "/opt/ros/kinetic/lib/python2.7/dist-packages" in sys.path:
|
||||
# sys.path.remove("/opt/ros/kinetic/lib/python2.7/dist-packages")
|
||||
import cv2
|
||||
import numpy as np
|
||||
from skimage import io
|
||||
import matplotlib
|
||||
import matplotlib.pyplot as plt
|
||||
from matplotlib import patches, lines
|
||||
from matplotlib.patches import Polygon, Rectangle
|
||||
from matplotlib.collections import PatchCollection
|
||||
|
||||
|
||||
from pycocotools.coco import COCO
|
||||
#matplotlib.use('TkAgg')
|
||||
|
||||
|
||||
def showAnns(cat_names,anns):
|
||||
if len(anns) == 0:
|
||||
return 0
|
||||
ax = plt.gca()
|
||||
ax.set_autoscale_on(False)
|
||||
captions = []
|
||||
polygons = []
|
||||
rectangles = []
|
||||
color = []
|
||||
for ann in anns:
|
||||
c = (np.random.random((1, 3)) * 0.6 + 0.4).tolist()[0]
|
||||
# if 'segmentation' in ann:
|
||||
# if type(ann['segmentation']) == list:
|
||||
# # polygon
|
||||
# for seg in ann['segmentation']:
|
||||
# print(132131,ann['category_id'])
|
||||
# print(cat_names[0])
|
||||
captions.append(cat_names[ann['category_id']-1])
|
||||
#poly = np.array(seg).reshape((int(len(seg) / 2), 2))
|
||||
l_corner, w, h = (ann['bbox'][0], ann['bbox'][1]), ann['bbox'][2], ann['bbox'][3]
|
||||
rectangles.append(Rectangle(l_corner, w, h))
|
||||
#polygons.append(Polygon(poly))
|
||||
color.append(c)
|
||||
|
||||
p = PatchCollection(rectangles, facecolor='none', edgecolors=color, alpha=1, linestyle='--', linewidths=2)
|
||||
ax.add_collection(p)
|
||||
|
||||
for i in range(len(captions)):
|
||||
x = rectangles[i].xy[0]
|
||||
y = rectangles[i].xy[1]
|
||||
ax.text(x, y, captions[i], size=10, verticalalignment='top', color='w', backgroundcolor="none")
|
||||
|
||||
# p = PatchCollection(polygons, facecolor=color, linewidths=0, alpha=0.6)
|
||||
# ax.add_collection(p)
|
||||
# #p = PatchCollection(polygons, facecolor='none', edgecolors=color, linewidths=2)
|
||||
# p = PatchCollection(polygons, facecolor='none', edgecolors='b', linewidths=0.5)
|
||||
# ax.add_collection(p)
|
||||
print('Ok!')
|
||||
|
||||
|
||||
|
||||
import random
|
||||
|
||||
#annfile = "/data/DataManagement/Project/CAS_ProjectBird/CDB_ProjectBird/coco/annotations/val.json" #####coco json
|
||||
#imgroot = "/data/DataManagement/Project/CAS_ProjectBird/CDB_ProjectBird/images/test" ####image_path
|
||||
def draw(coco,imgids,cat_names,imgroot,m, n, i):
|
||||
img = coco.loadImgs([str(imgids[np.random.randint(0, len(imgids))])])[0]
|
||||
I = io.imread(os.path.join(imgroot, img['file_name']))
|
||||
plt.subplot(m, n, i)
|
||||
plt.axis('off')
|
||||
plt.title(img['file_name'], fontsize=8, color='blue')
|
||||
plt.imshow(I, aspect='equal')
|
||||
annids = coco.getAnnIds(imgIds=[img['id']])
|
||||
anns = coco.loadAnns(annids)
|
||||
showAnns(cat_names,anns)
|
||||
def checkCOCO(annfile,imgroot):
|
||||
coco = COCO(annfile)
|
||||
cats = coco.loadCats(coco.getCatIds())
|
||||
cat_names = [cat['name'] for cat in cats]
|
||||
print(cat_names)
|
||||
catids = coco.getCatIds(catNms=random.randint(0,len(cat_names)-1))
|
||||
imgids = coco.getImgIds(catIds=catids)
|
||||
if 1:
|
||||
m=4
|
||||
n=4
|
||||
plt.figure(figsize=(m*6,n*4))
|
||||
plt.subplots_adjust(top=1,bottom=0,left=0,right=1,hspace=0,wspace=0)
|
||||
plt.margins(0,0)
|
||||
#fig = plt.figure(figsize=(18*m,12*n))
|
||||
for i in range(1,m*n+1):
|
||||
draw(coco,imgids,cat_names,imgroot,m,n,i)
|
||||
plt.savefig('static_map.png')
|
||||
plt.show()
|
||||
if __name__ == "__main__":
|
||||
annfile = "/data3/Project/CAS_ProjectBird/CDB_ProjectBird_BJCH_YNDC_HHK/COCO/annotations_str/train.json" #####coco json
|
||||
imgroot = "/data3/Project/CAS_ProjectBird/CDB_ProjectBird_BJCH_YNDC_HHK/COCO/train" ####image_path
|
||||
checkCOCO(annfile,imgroot)
|
||||
Reference in new issue
Block a user