今画像ピクセルの値はy座標が上から0となっており
赤枠の一番上の部分の座標を示してしまうプログラムになっています
それを赤枠の一番下の座標がわかるように変えたいです
変えるところは少しだと思うのですが
x座標を表示してしまったり変な値になってしまったりするので正確に正しいプログラムを教えていただきたいです
お願いします
# ラベリング処理(詳細版) label = cv2.connectedComponentsWithStats(gray) ### 追加した部分1 stats = label[2] area = stats[:, cv2.CC_STAT_WIDTH] * stats[:, cv2.CC_STAT_HEIGHT] top2_idx = area.argsort()[-3:-1] # 2番目、3番めに面積が大きいラベル (1番目は背景なので除く) # オブジェクト情報を項目別に抽出 data = label[2] center = label[3] # ラベリング結果書き出し用に二値画像をカラー変換 color_src = cv2.cvtColor(gray, cv2.COLOR_GRAY2BGR) # オブジェクト情報を利用してラベリング結果を表示 for i in top2_idx: # 各オブジェクトの外接矩形を赤枠で表示 x0 = data[i][0] y0 = data[i][1] x1 = data[i][0] + data[i][2] y1 = data[i][1] + data[i][3] cv2.rectangle(color_src, (x0, y0), (x1, y1), (0, 0, 255)) # 各オブジェクトの重心座標をに黄文字で表示 cv2.putText(color_src, "Y: " + str(int(data[i][1])), (x1 - 10, y1 + 30), cv2.FONT_HERSHEY_PLAIN, 1, (0, 255, 255))
上記のこの部分が違うと思うのですがどう変えたら良いでしょうか
!!!!!!!!!このdata[i][1]の部分!!!!!!!! cv2.putText(color_src, "Y: " + str(int(data[i][1])), (x1 - 10, y1 + 30), cv2.FONT_HERSHEY_PLAIN, 1, (0, 255, 255))
回答1件
あなたの回答
tips
プレビュー