#やりたいこと
あるpythonプログラムでRealsenseのフレームから深度画像をグレースケールで取得・保存し、別のpythonプログラムで近いほど白くなる画像を作りたいです。
分からないこと
以下のようなテストコードを作ったのですが、フレームから直接取得した画像で処理した場合(img_2.jpg)と保存した画像(img_3.jpg)で処理した場合、違う画像になってしまいます。img_3.jpg の物体の輪郭の周りが白くなります。
Python
1depth_frame = frames.get_depth_frame() 2depth_image = (np.asanyarray(depth_frame.get_data()) * 255.0 / 4000.0).astype(np.uint8) 3 4# 遠いほど黒い画像 5cv2.imwrite("img_1.jpg", depth_image) 6 7# 近いほど白くする 8for h in range(720): 9 for w in range(1280): 10 if depth_image.item(h,w) == 0: # 深度が取得できていない画素はそのまま 0 11 continue 12 else: 13 depth_image[h, w] = 255 - depth_image.item(h,w) 14 15cv2.imwrite("img_2.jpg", depth_image) 16 17# 遠いほど黒い画像の読み込み 18depth_image = cv2.imread("img_1.jpg", 0) 19 20# 近いほど白くする 21for h in range(720): 22 for w in range(1280): 23 if depth_image.item(h,w) == 0: # 深度が取得できていない画素はそのまま 0 24 continue 25 else: 26 depth_image[h, w] = 255 - depth_image.item(h,w) 27 28 29cv2.imwrite("img_3.jpg", depth_image)
原因や対策など分かる方いらしたらご教示いただけないでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/03 15:38