flandre/imaging_example.ipynb

109 lines
940 KiB
Plaintext
Raw Normal View History

2025-05-08 00:25:52 +08:00
{
"cells": [
{
"cell_type": "code",
"id": "initial_id",
"metadata": {
"collapsed": true,
"ExecuteTime": {
"end_time": "2025-05-07T15:32:31.772870Z",
"start_time": "2025-05-07T15:32:29.860423Z"
}
},
"source": [
"from matplotlib import pyplot as plt\n",
"from flandre.utils.RfMat import RfMat\n",
"import cupy as cp\n",
"\n",
"from flandre.beamformer.das import gen_pwi\n",
"from flandre.beamformer.dist import direct_dist\n",
"from flandre.utils.Config import DeviceConfig\n",
"from flandre.utils.Msg import ImageArgMsg\n",
"from flandre.utils.RfSequence import RfSequence\n",
"\n",
"arg = ImageArgMsg(\n",
" sender='',\n",
" t_end=2900,\n",
" t_start=0,\n",
" v2=1524,\n",
" dct_center=1086,\n",
" dct_bandwidth=915,\n",
" f_rows=6002,\n",
" beta=40,\n",
" tgc=0,\n",
" g8=80\n",
")\n",
"rff = RfSequence('/run/media/lambda/b86dccdc-f134-464b-a310-6575ee9ae85c/us/baby789,S=(256 6002),M=PWI,U=120')\n",
"\n",
"dc = DeviceConfig(v2=1540, rows=5999)\n",
"pwi, _, la = gen_pwi(direct_dist(dc, p=cp), dc)\n",
"print(la)\n",
"\n",
"data = RfMat.from_rf_frame(rff.frames[1000], device='gpu')\n",
"data = data.dct_center(arg.dct_center, arg.dct_bandwidth)\n",
"data = data.call(lambda m: m.astype(cp.int16))\n",
"data = data.call(pwi)\n",
"data = data.call(cp.asarray, order='C')\n",
"data = data.argrelextrema()\n",
"data = data.conv_guass(b=arg.beta * 0.01)\n",
"data = data.crop(arg.t_start, arg.t_end)\n",
"data = data.time_gain_compensation_global((1 - arg.g8 * (1.0 / 128)) ** 2)\n",
"data = data.rotate90()\n",
"\n",
"data.png('/home/lambda/source/scarlet/flandre/@DS/test.png', pre=300)\n",
"\n",
"data.cpu().jupyter(figsize=(30, 30), aspect=0.3)\n"
],
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/lambda/source/scarlet/flandre/.venv/lib/python3.12/site-packages/cupyx/jit/_interface.py:173: FutureWarning: cupyx.jit.rawkernel is experimental. The interface can change in the future.\n",
" cupy._util.experimental('cupyx.jit.rawkernel')\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2974\n"
]
},
{
"data": {
"text/plain": [
"<Figure size 3000x3000 with 1 Axes>"
],
"image/png": "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
},
"metadata": {},
"output_type": "display_data"
}
],
"execution_count": 1
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}