lsd.py 937 B

123456789101112131415161718192021222324252627282930313233343536
  1. #!/usr/bin/env python3
  2. import os
  3. import sys
  4. import glob
  5. import os.path as osp
  6. import cv2
  7. import numpy as np
  8. import scipy.io
  9. import matplotlib as mpl
  10. import numpy.linalg as LA
  11. import matplotlib.pyplot as plt
  12. IM = "data/wireframe/valid-images/*.jpg"
  13. if __name__ == "__main__":
  14. for i, iname in enumerate(sorted(glob.glob(IM))):
  15. img = cv2.imread(iname, 0)
  16. lsd = cv2.createLineSegmentDetector(cv2.LSD_REFINE_ADV)
  17. lsd_line, _, _, lsd_score = lsd.detect(img)
  18. lsd_line = lsd_line.reshape(-1, 2, 2)[:, :, ::-1]
  19. lsd_score = lsd_score.flatten()
  20. # plt.imshow(img)
  21. # for a, b in lsd_line:
  22. # plt.plot([a[1], b[1]], [a[0], b[0]], linewidth=4)
  23. # plt.show()
  24. lsd_index = np.argsort(-lsd_score)
  25. np.savez_compressed(
  26. iname.replace(".jpg", "_LSD.npz"),
  27. lines=lsd_line[lsd_index],
  28. scores=lsd_score[lsd_index],
  29. )