実装したいこと
jsonファイルに格納されているopenposeの骨格点の座標から指定した座標の部分を中心にトリミングしたい
現状況
画像から特徴点を算出してその部分のトリミングが行えている。
import cv2 from pathlib import Path import shutil # 画像を読み込む。 img = cv2.imread("test16.jpg") gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 2値化する。 ret, binary = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU) # 膨張処理 kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5, 5)) binary = cv2.dilate(binary, kernel) # 輪郭抽出する。 contours, hierarchy = cv2.findContours( binary, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE ) rects = [] for cnt in contours: if cv2.contourArea(cnt) < 500: # ★ ここの無視する面積も要調整 continue # 小さい輪郭は無視する。 # 回転した外接矩形をとる。 rect = cv2.minAreaRect(cnt) rects.append(rect) def crop_rect(img, rect): center, size, angle = rect center = tuple(map(int, center)) # float -> int size = tuple(map(int, size)) # float -> int h, w = img.shape[:2] # 画像の高さ、幅 # 切り抜く。 cropped = cv2.getRectSubPix(img, size, center) return cropped # 保存するディレクトリを作成する。 output_dir = Path("output") if output_dir.exists(): shutil.rmtree(output_dir) output_dir.mkdir() for i, rect in enumerate(rects): # 切り抜く。 cropped = crop_rect(img, rect) # 保存する。 save_path = output_dir / f"contour{i}.png" cv2.imwrite(str(save_path), cropped)
解決したいこと
座標が(x,y)=(2072.9,2159.91)になっておりその座標を中心にトリミングを行いたい。
どうかご教授のほうお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。