본문 바로가기

이직로그/DSP

빔포밍 시뮬레이션 2 - 첫번째 프레임 이미지 처리

analytic = hilbert(frame, axis=0)
envelope = np.abs(analytic)

힐버트 변환한걸 절대값 취하면 포락선(envelope)를 구할 수 있다.

bmode = np.log10(envelope + 1e-3)

log를 이용해서 이미지를 compress한다.

log 곡선은 값이 작을때는 기울기가 급격하고 값이 커지면서 점점 값이 작아지기 때문에 적절히 compress할수있음

logic Pro X의 컴프레서를 생각하면 간단할거같다(아니면 더 복잡해 지거나)

1e-3은 왜 더하냐? evelope값이 0일수있기 때문에 더한다고 한다.

plt.figure(figsize=(8,6))
plt.imshow(bmode, cmap="gray", aspect="auto")
plt.title("B-mode Image (Hilbert envelope)")
plt.xlabel("Vector (channel)")
plt.ylabel("Depth (samples)")
plt.colorbar(label="log amplitude")
plt.show()

나머지는 plot의 설정이라서 더 설명하지 않아도 될거같다.