{"id":20,"date":"2025-09-29T15:06:26","date_gmt":"2025-09-29T15:06:26","guid":{"rendered":"https:\/\/hlxkickb.hostingkr.com\/?page_id=20"},"modified":"2025-10-10T14:49:40","modified_gmt":"2025-10-10T14:49:40","slug":"icg-literature","status":"publish","type":"page","link":"https:\/\/hlxkickb.hostingkr.com\/index.php\/icg-literature\/","title":{"rendered":"02 | ICG Literature"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\"><strong>ICG \ub9bc\ud504\uc870\uc601\uc220(Indocyanine Green Lymphography)<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub9bc\ud504\ubd80\uc885\uc740 \uc720\ubc29\uc554 \uc218\uc220(\ud2b9\ud788 \uc561\uc640 \ub9bc\ud504\uc808 \uc808\uc81c\uc220, ALND) \ud6c4 \ubc1c\uc0dd\ud560 \uc218 \uc788\ub294 \uc8fc\uc694 \ud569\ubcd1\uc99d\uc785\ub2c8\ub2e4. \uc774 \uc9c8\ud658\uc740 \ub9cc\uc131 \uc5fc\uc99d, \uc12c\uc720\uc99d, \uc9c0\ubc29 \uce68\ucc29\uc744 \ub3d9\ubc18\ud558\ub294 \uc9c4\ud589\uc131 \uc9c8\ud658\uc73c\ub85c, \ud658\uc790\uc758 \uae30\ub2a5, \uac74\uac15 \ubc0f \uc0b6\uc758 \uc9c8\uc5d0 \ubd80\uc815\uc801\uc778 \uc601\ud5a5\uc744 \ubbf8\uce58\uba70, \ubc1c\ubcd1\ub960\uc774 9%\uc5d0\uc11c 42%\uae4c\uc9c0 \ub113\uac8c \ubcf4\uace0\ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub9bc\ud504\ubd80\uc885\uc740 \ucd08\uae30\uc5d0\ub294 \uc555\ubc15 \uc758\ub958 \ucc29\uc6a9 \ubc0f \uc7ac\ud65c \uce58\ub8cc\uc640 \uac19\uc740 \ubcf4\uc874\uc801 \uce58\ub8cc\ub85c \uc8fc\ub85c \uad00\ub9ac\ub418\uc9c0\ub9cc, \ub9bc\ud504 \ubc30\uc561 \uae30\ub2a5 \uc7a5\uc560\uc5d0 \ub300\ud55c \uc644\uce58 \uce58\ub8cc\ub294 \uc5b4\ub824\uc6b4 \uac83\uc73c\ub85c \uc54c\ub824\uc838 \uc788\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c \ucd5c\uadfc\uc5d0\ub294 \ub9bc\ud504\ubd80\uc885 \ubc1c\uc0dd \uc790\uccb4\ub97c \uc608\ubc29\ud558\uac70\ub098 \uc870\uae30\uc5d0 \uc9c4\ub2e8\ud558\uc5ec \uc801\uadf9\uc801\uc778 \uce58\ub8cc\ub97c \uc2dc\uc791\ud558\ub294 \ub370 \ucd08\uc810\uc774 \ub9de\ucdb0\uc9c0\uace0 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub7ec\ud55c \ub9e5\ub77d\uc5d0\uc11c ICG \ub9bc\ud504\uc870\uc601\uc220(Indocyanine Green Lymphography)\uc740 \ub9bc\ud504\ubd80\uc885\uc758 \uc9c4\ub2e8\uacfc \uc911\uc99d\ub3c4 \ud3c9\uac00\uc5d0 \ud544\uc218\uc801\uc778 \uac1d\uad00\uc801\uc778 \uc601\uc0c1 \uc9c4\ub2e8 \uae30\ubc95\uc73c\ub85c \ud65c\uc6a9\ub418\uace0 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>ICG \ub9bc\ud504\uc870\uc601\uc220\uc774\ub780 \ubb34\uc5c7\uc778\uac00?<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">ICG \ub9bc\ud504\uc870\uc601\uc220\uc740 \uc778\ub3c4\uc2dc\uc544\ub2cc \uadf8\ub9b0(Indocyanine Green, ICG)\uc774\ub77c\ub294 \ud615\uad11 \uc5fc\ub8cc\ub97c \uc0ac\uc6a9\ud558\uc5ec \ub9bc\ud504\uacc4\uc758 \uae30\ub2a5\uc744 \uc2dc\uac01\ud654\ud558\ub294 \ubc29\ubc95\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ICG\ub294 \uc77c\ubc18\uc801\uc73c\ub85c ICG 0.2 mL \ub610\ub294 0.4 mL\ub97c \uc190\uc758 \ud53c\ud558 \uc8fc\uc0ac\ud569\ub2c8\ub2e4. \ub54c\ub85c\ub294 \uc190\ubaa9\uc758 \uc7a5\uce21 \ub0b4\uce21 \ubc0f \uc678\uce21 \uacbd\uacc4\uc5d0\ub3c4 \uc8fc\uc0ac\ud569\ub2c8\ub2e4. \uc8fc\uc0ac \ubd80\uc704\uc758 \ud1b5\uc99d\uc744 \uc904\uc774\uae30 \uc704\ud574 \uc5fc\ub8cc \uc8fc\uc785 \uc804\uc5d0 \uad6d\uc18c \ub9c8\ucde8\uc81c\ub97c \uc8fc\uc0ac\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<br>\uc5fc\ub8cc \uc8fc\uc785 \ud6c4, \uadfc\uc801\uc678\uc120 \ud615\uad11 \uce74\uba54\ub77c(\uc608: LymphoScope ICG, Busan, Korea)\ub97c \uc0ac\uc6a9\ud558\uc5ec \ub9bc\ud504 \ubc30\uc561 \uacbd\ub85c\ub97c \uc2dc\uac01\uc801\uc73c\ub85c \uad00\ucc30\ud558\uace0 \uc774\ubbf8\uc9c0\ub97c \uc5bb\uc2b5\ub2c8\ub2e4. ICG \uc5fc\ub8cc\uac00 \uc0ac\uc9c0 \uc804\uccb4\uc5d0 \ucda9\ubd84\ud788 \ud37c\uc838 \uc2a4\ud14c\uc774\uc9d5\uc774 \uac00\ub2a5\ud560 \ub54c\uae4c\uc9c0 \uc8fc\uc0ac \ud6c4 \ud55c \uc2dc\uac04\ub9c8\ub2e4 \uc774\ubbf8\uc9c0\ub97c \uc5bb\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>ICG \ub9bc\ud504\uc870\uc601\uc220\uc758 \uc5ed\ud560<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\ub9bc\ud504 \uae30\ub2a5 \ud3c9\uac00 \ubc0f \ub9bc\ud504\uc131 \ubd80\uc885\uacfc \ube44\ub9bc\ud504\uc131 \ubd80\uc885\uc744 \uad6c\ubcc4\ud558\ub294 \ub370 \uc911\uc694\ud55c \uac1d\uad00\uc801 \uc9c4\ub2e8 \uc601\uc0c1 \ubc29\ubc95\uc785\ub2c8\ub2e4. \ub610\ud55c, \uc870\uae30 \ub9bc\ud504\ubd80\uc885\uc744 \uac10\uc9c0\ud558\ub294 \ub370 \ub354 \ubbfc\uac10\ud558\uba70, \uc0c1\uc9c0 \ub9bc\ud504\ubd80\uc885\uc758 \uc870\uae30 \uc9c4\ub2e8 \uc601\uc0c1\uc5d0 \uc788\uc5b4 \ub9bc\ud504\uc2e0\ud2f0\uadf8\ub77c\ud53c\ubcf4\ub2e4 \uc6b0\uc218\ud569\ub2c8\ub2e4. \uc774\ub294 \uae30\ub2a5\uc801\uc778 \ud45c\uc7ac\uc131 \ub9bc\ud504 \ubc30\uc561\uc744 \ub354 \uc815\uad50\ud558\uac8c \uc2dc\uac01\ud654\ud560 \uc218 \uc788\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4. \uc720\ubc29\uc554 \uad00\ub828 \ub9bc\ud504\ubd80\uc885 \uc608\ubc29\uc744 \uc704\ud55c \uc608\ubc29\uc801 \ub9bc\ud504\uc815\ub9e5 \ubb38\ud569\uc220(prophylactic LVA)\uacfc \uac19\uc740 \uc218\uc220\uc744 \ubc1b\uae30 \uc804, \ud658\uc790\uac00 \uc815\uc0c1\uc801\uc778 \ub9bc\ud504 \ud750\ub984\uc744 \uac00\uc9c0\uace0 \uc788\ub294\uc9c0 \ud655\uc778\ud558\ub294 \ub370 \uc0ac\uc6a9\ub429\ub2c8\ub2e4. ICG \ub9bc\ud504\uc870\uc601\uc220 \uc774\ubbf8\uc9c0\ub294 \ub9bc\ud504\uc561\uc758 \ud53c\ubd80 \uc5ed\ub958(dermal backflow, DB) \ud328\ud134\uacfc \uadf8 \ud655\uc7a5 \uc815\ub3c4\uc5d0 \ub530\ub77c \ub9bc\ud504\ubd80\uc885\uc758 \uc911\uc99d\ub3c4\ub97c \ubd84\ub958\ud558\ub294 \ub370 \uc0ac\uc6a9\ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>\ub9bc\ud504\ubd80\uc885 \uce58\ub8cc\uc640 ICG\uc758 \uc911\uc694\uc131<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">ICG \ub9bc\ud504\uc870\uc601\uc220\uc744 \ud1b5\ud574 \ub9bc\ud504\ubd80\uc885\uc758 \uc911\uc99d\ub3c4\ub97c \ud30c\uc545\ud558\ub294 \uac83\uc740 \uce58\ub8cc \ubc29\uce68\uc744 \uacb0\uc815\ud558\ub294 \ub370 \ub9e4\uc6b0 \uc911\uc694\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub9bc\ud504\ubd80\uc885\uc758 \uc2ec\uac01\ub3c4\uac00 \ub0ae\uc744 \uacbd\uc6b0, \ub9bc\ud504\uc815\ub9e5 \ubb38\ud569\uc220(LVA)\uc774\ub098 \ud608\uad00\ud654 \ub9bc\ud504\uc808 \uc774\uc2dd\uc220(VLNT)\uacfc \uac19\uc740 \uc0dd\ub9ac\uc801 \uc218\uc220(physiologic procedures)\uc774 \uc8fc\ub85c \uace0\ub824\ub429\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uc0dd\ub9ac\uc801 \uc218\uc220\uc740 \ub9bc\ud504 \ubc30\uc561\uc744 \uac1c\uc120\ud558\uc5ec \uc9c8\ubcd1\uc758 \ubcd1\ud0dc\uc0dd\ub9ac\ud559\uc801 \uacfc\uc815\uc744 \ub418\ub3cc\ub9ac\ub294 \uac83\uc744 \ubaa9\ud45c\ub85c \ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub530\ub77c\uc11c ICG \ub9bc\ud504\uc870\uc601\uc220\uc740 \uc870\uae30\uc5d0 \uc815\ud655\ud55c \uc9c4\ub2e8\uc744 \uc81c\uacf5\ud568\uc73c\ub85c\uc368, \ud658\uc790\ub4e4\uc774 \ub9bc\ud504\ubd80\uc885\uc774 \uc9c4\ud589\ub418\uc5b4 \ube44\uac00\uc5ed\uc801 \ubd80\uc885\uc774\ub098 \uc12c\uc720\uc99d\uc774 \ubc1c\uc0dd\ud558\uae30 \uc804\uc5d0 \uc801\uc808\ud55c \ubbf8\uc138 \uc218\uc220 \uce58\ub8cc\ub97c \ubc1b\uc744 \uc218 \uc788\ub3c4\ub85d \ub3d5\ub294 \ud575\uc2ec \ub3c4\uad6c\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><strong>\ucc38\uace0\ubb38\ud5cc<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Chang, D. W., Suami, H., &amp; Skoracki, R. (2013). A prospective analysis of 100 consecutive lymphovenous bypass cases for treatment of extremity lymphedema. Plastic and Reconstructive Surgery, 132(5), 1305\u20131314.<br>Lee, H. S., Bae, Y. C., Nam, S. B., Yi, C. R., Yoon, J. A., &amp; Kim, J. H. (2021). The relationship between lymphedema severity and awareness of lymphedema surgery. Archives of Plastic Surgery, 48(5), 534\u2013542.<br>Mihara, M., Hara, H., Araki, J., Kikuchi, K., Narushima, M., Iida, T., &amp; Koshima, I. (2012). Indocyanine green (ICG) lymphography is superior to lymphoscintigraphy for diagnostic imaging of early lymphedema of the upper limbs. PloS One, 7(6), e38182.<br>Narushima, M., Yamamoto, T., Ogata, F., Yoshimatsu, H., Mihara, M., Koshima, I., &amp; Harii, K. (2016). Indocyanine green lymphography findings in limb lymphedema. Journal of Reconstructive Microsurgery, 32(1), 72\u201379.<br>Park, M. S., Yoon, J. A., Lee, J. W., &amp; Kim, J. H. (2021). Prevention of Breast Cancer-Related Lymphedema Using the Lymphatic Microsurgical Preventive Healing Approach: A Case Report. Archives of Hand and Microsurgery, 26(4), 298\u2013302.<br>Yoon, J. A., Lee, H. S., Lee, J. W., &amp; Kim, J. H. (2021). Six-Month Follow-up for Investigating the Effect of Prophylactic Lymphovenous Anastomosis on the Prevention of Breast Cancer-Related Lymphedema: A Preliminary Study in a Single Institution. Archives of Hand and Microsurgery, 26(4), 276\u2013284.<br>Yoon, J. A., Shin, M. J., &amp; Kim, J. H. (2020). Indocyanine green lymphography and lymphoscintigraphy severity stage showed strong correlation in lower limb lymphedema. Lymphatic Research and Biology.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<!DOCTYPE html>\n<html lang=\"ko\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>ICG \uc774\ubbf8\uc9c0 \ud53d\uc140 \ubd84\uc11d\uae30<\/title>\n    <style>\n        * {\n            margin: 0;\n            padding: 0;\n            box-sizing: border-box;\n        }\n        \n        body {\n            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n            background: #f5f5f5;\n            min-height: 100vh;\n            padding: 20px;\n        }\n        \n        .container {\n            max-width: 1400px;\n            margin: 0 auto;\n            background: white;\n            border-radius: 15px;\n            padding: 30px;\n            box-shadow: 0 2px 10px rgba(0,0,0,0.1);\n            border: 1px solid #e0e0e0;\n        }\n        \n        h1 {\n            text-align: center;\n            color: #2c3e50;\n            margin-bottom: 30px;\n            font-size: 28px;\n        }\n        \n        .controls {\n            padding: 20px;\n            background: #f8f9fa;\n            border-radius: 10px;\n            margin-bottom: 20px;\n        }\n        \n        .control-row {\n            display: flex;\n            gap: 20px;\n            margin-bottom: 15px;\n            flex-wrap: wrap;\n        }\n        \n        .control-group {\n            flex: 1;\n            min-width: 200px;\n        }\n        \n        label {\n            display: block;\n            margin-bottom: 8px;\n            font-weight: 600;\n            color: #555;\n        }\n        \n        input[type=\"file\"] {\n            width: 100%;\n            padding: 10px;\n            border: 2px dashed #667eea;\n            border-radius: 8px;\n            cursor: pointer;\n            background: white;\n        }\n        \n        select, input[type=\"number\"] {\n            width: 100%;\n            padding: 10px;\n            border: 2px solid #ddd;\n            border-radius: 8px;\n            font-size: 14px;\n        }\n        \n        input[type=\"range\"] {\n            width: 100%;\n            height: 6px;\n            border-radius: 5px;\n            background: #d3d3d3;\n            outline: none;\n        }\n        \n        input[type=\"range\"]::-webkit-slider-thumb {\n            -webkit-appearance: none;\n            width: 20px;\n            height: 20px;\n            border-radius: 50%;\n            background: #667eea;\n            cursor: pointer;\n        }\n        \n        .threshold-value {\n            display: inline-block;\n            margin-left: 10px;\n            font-weight: bold;\n            color: #667eea;\n        }\n        \n        button {\n            padding: 10px 20px;\n            background: #616161;\n            color: white;\n            border: none;\n            border-radius: 8px;\n            cursor: pointer;\n            font-size: 14px;\n            font-weight: 600;\n            transition: background 0.3s;\n        }\n        \n        button:hover {\n            background: #424242;\n        }\n        \n        button:disabled {\n            background: #ccc;\n            cursor: not-allowed;\n        }\n        \n        .images-grid {\n            display: grid;\n            grid-template-columns: repeat(2, 1fr);\n            gap: 20px;\n            margin-top: 20px;\n        }\n        \n        .image-panel {\n            border: 3px solid #e0e0e0;\n            border-radius: 10px;\n            padding: 15px;\n            background: #fafafa;\n        }\n        \n        .image-panel.has-image {\n            border-color: #757575;\n        }\n        \n        .image-header {\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            margin-bottom: 10px;\n        }\n        \n        .image-title {\n            font-weight: bold;\n            color: #333;\n        }\n        \n        .auto-threshold-value {\n            font-size: 12px;\n            color: #616161;\n            font-weight: 600;\n        }\n        \n        canvas {\n            border: 2px solid #9e9e9e;\n            border-radius: 8px;\n            cursor: crosshair;\n            max-width: 100%;\n            height: auto;\n            display: block;\n        }\n        \n        .results {\n            margin-top: 15px;\n            padding: 15px;\n            background: white;\n            border-radius: 8px;\n            font-size: 14px;\n        }\n        \n        .result-item {\n            margin: 5px 0;\n            display: flex;\n            justify-content: space-between;\n        }\n        \n        .result-label {\n            color: #666;\n        }\n        \n        .result-value {\n            color: #424242;\n            font-weight: bold;\n        }\n        \n        .instructions {\n            margin-top: 20px;\n            padding: 15px;\n            background: #fff3cd;\n            border-radius: 8px;\n            border-left: 4px solid #ffc107;\n        }\n        \n        .instructions h3 {\n            color: #856404;\n            margin-bottom: 10px;\n        }\n        \n        .method-info {\n            margin-top: 15px;\n            padding: 15px;\n            background: #f5f5f5;\n            border-radius: 8px;\n            border-left: 4px solid #757575;\n        }\n        \n        .method-info h4 {\n            color: #424242;\n            margin-bottom: 8px;\n        }\n        \n        .method-info p {\n            color: #555;\n            line-height: 1.6;\n            margin: 5px 0;\n        }\n\n        .summary-table {\n            margin-top: 20px;\n            width: 100%;\n            border-collapse: collapse;\n            background: white;\n            border-radius: 8px;\n            overflow: hidden;\n            box-shadow: 0 2px 8px rgba(0,0,0,0.1);\n        }\n\n        .summary-table th {\n            background: #616161;\n            color: white;\n            padding: 12px;\n            text-align: left;\n            font-weight: 600;\n        }\n\n        .summary-table td {\n            padding: 10px 12px;\n            border-bottom: 1px solid #eee;\n        }\n\n        .summary-table tr:hover {\n            background: #f5f5f5;\n        }\n    <\/style>\n<\/head>\n<body>\n    <div class=\"container\">\n        <h1>\ud83d\udd2c ICG \uc774\ubbf8\uc9c0 \ud53d\uc140 \ubd84\uc11d\uae30 (4\uac1c \ub3d9\uc2dc \ubd84\uc11d)<\/h1>\n        \n        <div class=\"controls\">\n            <div class=\"control-row\">\n                <div class=\"control-group\">\n                    <label for=\"imageInput\">\uc774\ubbf8\uc9c0 \uc5c5\ub85c\ub4dc (\ucd5c\ub300 4\uac1c):<\/label>\n                    <input type=\"file\" id=\"imageInput\" accept=\"image\/*\" multiple>\n                <\/div>\n            <\/div>\n            \n            <div class=\"control-row\">\n                <div class=\"control-group\">\n                    <label for=\"thresholdMethod\">\uc784\uacc4\uac12 \uc124\uc815 \ubc29\ubc95:<\/label>\n                    <select id=\"thresholdMethod\">\n                        <option value=\"otsu\">Otsu&#8217;s Method (\uc790\ub3d9 &#8211; \ucd94\ucc9c)<\/option>\n                        <option value=\"percentile\">Percentile (\uc0c1\uc704 N%)<\/option>\n                        <option value=\"mean_sd\">\ud3c9\uade0 + \ud45c\uc900\ud3b8\ucc28<\/option>\n                        <option value=\"manual\">\uc218\ub3d9 \uc124\uc815<\/option>\n                    <\/select>\n                <\/div>\n                \n                <div class=\"control-group\" id=\"percentileControl\" style=\"display: none;\">\n                    <label for=\"percentileValue\">Percentile \uac12 (%):<\/label>\n                    <input type=\"number\" id=\"percentileValue\" min=\"1\" max=\"50\" value=\"10\" step=\"1\">\n                <\/div>\n                \n                <div class=\"control-group\" id=\"sdControl\" style=\"display: none;\">\n                    <label for=\"sdMultiplier\">\ud45c\uc900\ud3b8\ucc28 \ubc30\uc218:<\/label>\n                    <input type=\"number\" id=\"sdMultiplier\" min=\"0.5\" max=\"5\" value=\"2\" step=\"0.5\">\n                <\/div>\n                \n                <div class=\"control-group\" id=\"manualControl\" style=\"display: none;\">\n                    <label for=\"manualThreshold\">\n                        \uc218\ub3d9 \uc784\uacc4\uac12: <span class=\"threshold-value\" id=\"thresholdValue\">128<\/span>\n                    <\/label>\n                    <input type=\"range\" id=\"manualThreshold\" min=\"0\" max=\"255\" value=\"128\">\n                <\/div>\n            <\/div>\n            \n            <div class=\"control-row\">\n                <button id=\"applyBtn\" disabled>\ubaa8\ub4e0 \uc774\ubbf8\uc9c0\uc5d0 \uc784\uacc4\uac12 \uc801\uc6a9<\/button>\n                <button id=\"resetBtn\" disabled>\ubaa8\ub4e0 \uc120\ud0dd \ucd08\uae30\ud654<\/button>\n            <\/div>\n        <\/div>\n\n        <div class=\"method-info\" id=\"methodInfo\">\n            <h4>\ud83d\udccc Otsu&#8217;s Method (\uc624\uce20 \ubc29\ubc95)<\/h4>\n            <p><strong>\uc791\ub3d9 \uc6d0\ub9ac:<\/strong> \uc774\ubbf8\uc9c0 \ud788\uc2a4\ud1a0\uadf8\ub7a8\uc744 \ubd84\uc11d\ud558\uc5ec \ubc30\uacbd\uacfc \uc804\uacbd(\ubc1d\uc740 \ubd80\ubd84)\uc744 \ucd5c\uc801\uc73c\ub85c \uad6c\ubd84\ud558\ub294 \uc784\uacc4\uac12\uc744 \uc790\ub3d9 \uacc4\uc0b0\ud569\ub2c8\ub2e4.<\/p>\n            <p><strong>\uc7a5\uc810:<\/strong> \uc218\ub3d9 \uc870\uc815 \uc5c6\uc774 \ud1b5\uacc4\uc801\uc73c\ub85c \ucd5c\uc801\uc758 \uac12\uc744 \uc790\ub3d9\uc73c\ub85c \ucc3e\uc544\uc90d\ub2c8\ub2e4. \uc0dd\ubb3c\ud559\uc801 \uc774\ubbf8\uc9c0 \ubd84\uc11d\uc5d0\uc11c \uac00\uc7a5 \ub110\ub9ac \uc0ac\uc6a9\ub429\ub2c8\ub2e4.<\/p>\n            <p><strong>\ucd94\ucc9c \uc0c1\ud669:<\/strong> \ubc30\uacbd\uc774 \uc5b4\ub461\uace0 \uc2e0\ud638(\ud608\uad00, \uc2e0\uacbd \ub4f1)\uac00 \ubc1d\uac8c \ub098\ud0c0\ub098\ub294 \uc774\ubbf8\uc9c0\uc5d0 \uc801\ud569\ud569\ub2c8\ub2e4.<\/p>\n        <\/div>\n        \n        <div class=\"instructions\">\n            <h3>\ud83d\udccb \uc0ac\uc6a9 \ubc29\ubc95<\/h3>\n            <ul style=\"margin-left: 20px; color: #856404;\">\n                <li>\ucd5c\ub300 4\uac1c\uc758 \uc774\ubbf8\uc9c0\ub97c \ub3d9\uc2dc\uc5d0 \uc5c5\ub85c\ub4dc\ud558\uc138\uc694<\/li>\n                <li>\uac01 \uc774\ubbf8\uc9c0\uc5d0\uc11c \ub9c8\uc6b0\uc2a4\ub85c \ub4dc\ub798\uadf8\ud558\uc5ec \ubd84\uc11d \uc601\uc5ed\uc744 \uc120\ud0dd\ud558\uc138\uc694<\/li>\n                <li>\uc784\uacc4\uac12 \ubc29\ubc95\uc744 \uc120\ud0dd\ud558\uba74 \ubaa8\ub4e0 \uc774\ubbf8\uc9c0\uc5d0 \ub3d9\uc77c\ud55c \uae30\uc900\uc774 \uc801\uc6a9\ub429\ub2c8\ub2e4<\/li>\n                <li>Otsu&#8217;s Method\ub294 \uc790\ub3d9\uc73c\ub85c \ucd5c\uc801\uc758 \uc784\uacc4\uac12\uc744 \ucc3e\uc544\uc90d\ub2c8\ub2e4 (\ucd94\ucc9c)<\/li>\n            <\/ul>\n        <\/div>\n        \n        <div class=\"images-grid\" id=\"imagesGrid\">\n            <div class=\"image-panel\" id=\"panel1\">\n                <div class=\"image-header\">\n                    <span class=\"image-title\">\uc774\ubbf8\uc9c0 1<\/span>\n                    <span class=\"auto-threshold-value\" id=\"threshold1\"><\/span>\n                <\/div>\n                <canvas id=\"canvas1\"><\/canvas>\n                <div class=\"results\" id=\"results1\" style=\"display: none;\"><\/div>\n            <\/div>\n            <div class=\"image-panel\" id=\"panel2\">\n                <div class=\"image-header\">\n                    <span class=\"image-title\">\uc774\ubbf8\uc9c0 2<\/span>\n                    <span class=\"auto-threshold-value\" id=\"threshold2\"><\/span>\n                <\/div>\n                <canvas id=\"canvas2\"><\/canvas>\n                <div class=\"results\" id=\"results2\" style=\"display: none;\"><\/div>\n            <\/div>\n            <div class=\"image-panel\" id=\"panel3\">\n                <div class=\"image-header\">\n                    <span class=\"image-title\">\uc774\ubbf8\uc9c0 3<\/span>\n                    <span class=\"auto-threshold-value\" id=\"threshold3\"><\/span>\n                <\/div>\n                <canvas id=\"canvas3\"><\/canvas>\n                <div class=\"results\" id=\"results3\" style=\"display: none;\"><\/div>\n            <\/div>\n            <div class=\"image-panel\" id=\"panel4\">\n                <div class=\"image-header\">\n                    <span class=\"image-title\">\uc774\ubbf8\uc9c0 4<\/span>\n                    <span class=\"auto-threshold-value\" id=\"threshold4\"><\/span>\n                <\/div>\n                <canvas id=\"canvas4\"><\/canvas>\n                <div class=\"results\" id=\"results4\" style=\"display: none;\"><\/div>\n            <\/div>\n        <\/div>\n\n        <table class=\"summary-table\" id=\"summaryTable\" style=\"display: none;\">\n            <thead>\n                <tr>\n                    <th>\uc774\ubbf8\uc9c0<\/th>\n                    <th>\uc784\uacc4\uac12<\/th>\n                    <th>\ucd1d \ud53d\uc140<\/th>\n                    <th>\ubc1d\uc740 \ud53d\uc140<\/th>\n                    <th>\ube44\uc728 (%)<\/th>\n                    <th>\ud3c9\uade0 \ubc1d\uae30<\/th>\n                <\/tr>\n            <\/thead>\n            <tbody id=\"summaryBody\"><\/tbody>\n        <\/table>\n    <\/div>\n\n    <script>\n        const imageInput = document.getElementById('imageInput');\n        const thresholdMethod = document.getElementById('thresholdMethod');\n        const percentileControl = document.getElementById('percentileControl');\n        const sdControl = document.getElementById('sdControl');\n        const manualControl = document.getElementById('manualControl');\n        const applyBtn = document.getElementById('applyBtn');\n        const resetBtn = document.getElementById('resetBtn');\n        const methodInfo = document.getElementById('methodInfo');\n        const summaryTable = document.getElementById('summaryTable');\n        const summaryBody = document.getElementById('summaryBody');\n        \n        let images = [null, null, null, null];\n        let selections = [null, null, null, null];\n        let thresholds = [128, 128, 128, 128];\n        let analysisResults = [{}, {}, {}, {}];\n        \n        \/\/ \uc784\uacc4\uac12 \ubc29\ubc95 \ubcc0\uacbd\n        thresholdMethod.addEventListener('change', function() {\n            percentileControl.style.display = this.value === 'percentile' ? 'block' : 'none';\n            sdControl.style.display = this.value === 'mean_sd' ? 'block' : 'none';\n            manualControl.style.display = this.value === 'manual' ? 'block' : 'none';\n            \n            updateMethodInfo(this.value);\n            \n            if (images.some(img => img !== null)) {\n                calculateThresholds();\n            }\n        });\n        \n        \/\/ \ubc29\ubc95 \uc124\uba85 \uc5c5\ub370\uc774\ud2b8\n        function updateMethodInfo(method) {\n            const infos = {\n                otsu: {\n                    title: 'Otsu\\'s Method (\uc624\uce20 \ubc29\ubc95)',\n                    principle: '\uc774\ubbf8\uc9c0 \ud788\uc2a4\ud1a0\uadf8\ub7a8\uc744 \ubd84\uc11d\ud558\uc5ec \ubc30\uacbd\uacfc \uc804\uacbd(\ubc1d\uc740 \ubd80\ubd84)\uc744 \ucd5c\uc801\uc73c\ub85c \uad6c\ubd84\ud558\ub294 \uc784\uacc4\uac12\uc744 \uc790\ub3d9 \uacc4\uc0b0\ud569\ub2c8\ub2e4.',\n                    advantage: '\uc218\ub3d9 \uc870\uc815 \uc5c6\uc774 \ud1b5\uacc4\uc801\uc73c\ub85c \ucd5c\uc801\uc758 \uac12\uc744 \uc790\ub3d9\uc73c\ub85c \ucc3e\uc544\uc90d\ub2c8\ub2e4. \uc0dd\ubb3c\ud559\uc801 \uc774\ubbf8\uc9c0 \ubd84\uc11d\uc5d0\uc11c \uac00\uc7a5 \ub110\ub9ac \uc0ac\uc6a9\ub429\ub2c8\ub2e4.',\n                    situation: '\ubc30\uacbd\uc774 \uc5b4\ub461\uace0 \uc2e0\ud638(\ud608\uad00, \uc2e0\uacbd \ub4f1)\uac00 \ubc1d\uac8c \ub098\ud0c0\ub098\ub294 \uc774\ubbf8\uc9c0\uc5d0 \uc801\ud569\ud569\ub2c8\ub2e4.'\n                },\n                percentile: {\n                    title: 'Percentile Method (\ubc31\ubd84\uc704\uc218 \ubc29\ubc95)',\n                    principle: '\uc804\uccb4 \ud53d\uc140 \uc911 \uc0c1\uc704 N%\ub97c \ubc1d\uc740 \ud53d\uc140\ub85c \uc815\uc758\ud569\ub2c8\ub2e4.',\n                    advantage: '\uc774\ubbf8\uc9c0 \uac04 \uc77c\uad00\uc131\uc744 \uc720\uc9c0\ud558\uae30 \uc88b\uc2b5\ub2c8\ub2e4. \ub3d9\uc77c\ud55c \ube44\uc728\uc758 \ubc1d\uc740 \uc601\uc5ed\uc744 \ube44\uad50\ud560 \ub54c \uc720\uc6a9\ud569\ub2c8\ub2e4.',\n                    situation: '\uc5ec\ub7ec \uc0d8\ud50c \uac04 \uc0c1\ub300\uc801 \ube44\uad50\uac00 \uc911\uc694\ud560 \ub54c \uc801\ud569\ud569\ub2c8\ub2e4.'\n                },\n                mean_sd: {\n                    title: '\ud3c9\uade0 + \ud45c\uc900\ud3b8\ucc28 \ubc29\ubc95',\n                    principle: '\ud3c9\uade0 \ubc1d\uae30 + (\ud45c\uc900\ud3b8\ucc28 \u00d7 N) \uc744 \uc784\uacc4\uac12\uc73c\ub85c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.',\n                    advantage: '\ud1b5\uacc4\uc801 \uc774\uc0c1\uce58\ub97c \ud6a8\uacfc\uc801\uc73c\ub85c \ucc3e\uc544\ub0c5\ub2c8\ub2e4. \ub178\uc774\uc988\uc5d0 \uac15\ud569\ub2c8\ub2e4.',\n                    situation: '\uc77c\ubc18\uc801\uc778 \ubc1d\uae30\ubcf4\ub2e4 \ud604\uc800\ud788 \ubc1d\uc740 \uc601\uc5ed\ub9cc \ucc3e\uace0 \uc2f6\uc744 \ub54c \uc801\ud569\ud569\ub2c8\ub2e4.'\n                },\n                manual: {\n                    title: '\uc218\ub3d9 \uc124\uc815',\n                    principle: '\uc0ac\uc6a9\uc790\uac00 \uc9c1\uc811 \uc784\uacc4\uac12\uc744 \uc9c0\uc815\ud569\ub2c8\ub2e4.',\n                    advantage: '\ud2b9\uc815 \ubc1d\uae30 \uae30\uc900\uc774 \uba85\ud655\ud560 \ub54c \uc815\ud655\ud55c \uc81c\uc5b4\uac00 \uac00\ub2a5\ud569\ub2c8\ub2e4.',\n                    situation: '\uae30\uc874 \uc5f0\uad6c\uc640 \ub3d9\uc77c\ud55c \uae30\uc900\uc744 \uc801\uc6a9\ud558\uac70\ub098, \ud2b9\uc815 \uac12\uc774 \ud544\uc694\ud560 \ub54c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.'\n                }\n            };\n            \n            const info = infos[method];\n            methodInfo.innerHTML = `\n                <h4>\ud83d\udccc ${info.title}<\/h4>\n                <p><strong>\uc791\ub3d9 \uc6d0\ub9ac:<\/strong> ${info.principle}<\/p>\n                <p><strong>\uc7a5\uc810:<\/strong> ${info.advantage}<\/p>\n                <p><strong>\ucd94\ucc9c \uc0c1\ud669:<\/strong> ${info.situation}<\/p>\n            `;\n        }\n        \n        \/\/ \uc218\ub3d9 \uc784\uacc4\uac12 \uc2ac\ub77c\uc774\ub354\n        document.getElementById('manualThreshold').addEventListener('input', function() {\n            document.getElementById('thresholdValue').textContent = this.value;\n        });\n        \n        \/\/ Percentile \uac12 \ubcc0\uacbd\n        document.getElementById('percentileValue').addEventListener('change', function() {\n            if (images.some(img => img !== null)) {\n                calculateThresholds();\n            }\n        });\n        \n        \/\/ \ud45c\uc900\ud3b8\ucc28 \ubc30\uc218 \ubcc0\uacbd\n        document.getElementById('sdMultiplier').addEventListener('change', function() {\n            if (images.some(img => img !== null)) {\n                calculateThresholds();\n            }\n        });\n        \n        \/\/ \uc774\ubbf8\uc9c0 \uc5c5\ub85c\ub4dc\n        imageInput.addEventListener('change', function(e) {\n            const files = Array.from(e.target.files).slice(0, 4);\n            \n            files.forEach((file, index) => {\n                const reader = new FileReader();\n                reader.onload = function(event) {\n                    const img = new Image();\n                    img.onload = function() {\n                        images[index] = img;\n                        const canvas = document.getElementById(`canvas${index + 1}`);\n                        const ctx = canvas.getContext('2d');\n                        \n                        canvas.width = img.width;\n                        canvas.height = img.height;\n                        ctx.drawImage(img, 0, 0);\n                        \n                        document.getElementById(`panel${index + 1}`).classList.add('has-image');\n                        selections[index] = null;\n                        \n                        setupCanvasEvents(canvas, index);\n                        \n                        if (images.some(img => img !== null)) {\n                            calculateThresholds();\n                            applyBtn.disabled = false;\n                            resetBtn.disabled = false;\n                        }\n                    };\n                    img.src = event.target.result;\n                };\n                reader.readAsDataURL(file);\n            });\n        });\n        \n        \/\/ Otsu's Method \uad6c\ud604\n        function calculateOtsuThreshold(imageData) {\n            const pixels = imageData.data;\n            const histogram = new Array(256).fill(0);\n            const total = pixels.length \/ 4;\n            \n            \/\/ \ud788\uc2a4\ud1a0\uadf8\ub7a8 \uc0dd\uc131\n            for (let i = 0; i < pixels.length; i += 4) {\n                const gray = Math.round((pixels[i] + pixels[i + 1] + pixels[i + 2]) \/ 3);\n                histogram[gray]++;\n            }\n            \n            let sum = 0;\n            for (let i = 0; i < 256; i++) {\n                sum += i * histogram[i];\n            }\n            \n            let sumB = 0;\n            let wB = 0;\n            let wF = 0;\n            let maxVariance = 0;\n            let threshold = 0;\n            \n            for (let i = 0; i < 256; i++) {\n                wB += histogram[i];\n                if (wB === 0) continue;\n                \n                wF = total - wB;\n                if (wF === 0) break;\n                \n                sumB += i * histogram[i];\n                \n                const mB = sumB \/ wB;\n                const mF = (sum - sumB) \/ wF;\n                \n                const variance = wB * wF * (mB - mF) * (mB - mF);\n                \n                if (variance > maxVariance) {\n                    maxVariance = variance;\n                    threshold = i;\n                }\n            }\n            \n            return threshold;\n        }\n        \n        \/\/ Percentile \ubc29\ubc95\n        function calculatePercentileThreshold(imageData, percentile) {\n            const pixels = imageData.data;\n            const grayValues = [];\n            \n            for (let i = 0; i < pixels.length; i += 4) {\n                const gray = Math.round((pixels[i] + pixels[i + 1] + pixels[i + 2]) \/ 3);\n                grayValues.push(gray);\n            }\n            \n            grayValues.sort((a, b) => b - a);\n            const index = Math.floor(grayValues.length * (percentile \/ 100));\n            return grayValues[index];\n        }\n        \n        \/\/ \ud3c9\uade0 + \ud45c\uc900\ud3b8\ucc28 \ubc29\ubc95\n        function calculateMeanSDThreshold(imageData, multiplier) {\n            const pixels = imageData.data;\n            let sum = 0;\n            let count = 0;\n            \n            for (let i = 0; i < pixels.length; i += 4) {\n                const gray = (pixels[i] + pixels[i + 1] + pixels[i + 2]) \/ 3;\n                sum += gray;\n                count++;\n            }\n            \n            const mean = sum \/ count;\n            \n            let variance = 0;\n            for (let i = 0; i < pixels.length; i += 4) {\n                const gray = (pixels[i] + pixels[i + 1] + pixels[i + 2]) \/ 3;\n                variance += Math.pow(gray - mean, 2);\n            }\n            \n            const sd = Math.sqrt(variance \/ count);\n            return Math.min(255, Math.round(mean + multiplier * sd));\n        }\n        \n        \/\/ \ubaa8\ub4e0 \uc774\ubbf8\uc9c0\uc758 \uc784\uacc4\uac12 \uacc4\uc0b0\n        function calculateThresholds() {\n            const method = thresholdMethod.value;\n            \n            images.forEach((img, index) => {\n                if (!img) return;\n                \n                const canvas = document.getElementById(`canvas${index + 1}`);\n                const ctx = canvas.getContext('2d');\n                const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);\n                \n                let threshold;\n                \n                switch(method) {\n                    case 'otsu':\n                        threshold = calculateOtsuThreshold(imageData);\n                        break;\n                    case 'percentile':\n                        const percentile = parseFloat(document.getElementById('percentileValue').value);\n                        threshold = calculatePercentileThreshold(imageData, percentile);\n                        break;\n                    case 'mean_sd':\n                        const multiplier = parseFloat(document.getElementById('sdMultiplier').value);\n                        threshold = calculateMeanSDThreshold(imageData, multiplier);\n                        break;\n                    case 'manual':\n                        threshold = parseInt(document.getElementById('manualThreshold').value);\n                        break;\n                }\n                \n                thresholds[index] = threshold;\n                document.getElementById(`threshold${index + 1}`).textContent = \n                    method !== 'manual' ? `\uc790\ub3d9 \uc784\uacc4\uac12: ${threshold}` : `\uc218\ub3d9 \uc784\uacc4\uac12: ${threshold}`;\n            });\n        }\n        \n        \/\/ \uce94\ubc84\uc2a4 \uc774\ubca4\ud2b8 \uc124\uc815\n        function setupCanvasEvents(canvas, index) {\n            let isSelecting = false;\n            let startX, startY;\n            \n            canvas.addEventListener('mousedown', function(e) {\n                isSelecting = true;\n                const rect = canvas.getBoundingClientRect();\n                startX = e.clientX - rect.left;\n                startY = e.clientY - rect.top;\n            });\n            \n            canvas.addEventListener('mousemove', function(e) {\n                if (!isSelecting) return;\n                \n                const rect = canvas.getBoundingClientRect();\n                const endX = e.clientX - rect.left;\n                const endY = e.clientY - rect.top;\n                \n                const ctx = canvas.getContext('2d');\n                ctx.drawImage(images[index], 0, 0);\n                \n                ctx.strokeStyle = '#00ff00';\n                ctx.lineWidth = 2;\n                ctx.strokeRect(startX, startY, endX - startX, endY - startY);\n                ctx.fillStyle = 'rgba(0, 255, 0, 0.1)';\n                ctx.fillRect(startX, startY, endX - startX, endY - startY);\n            });\n            \n            canvas.addEventListener('mouseup', function(e) {\n                if (!isSelecting) return;\n                isSelecting = false;\n                \n                const rect = canvas.getBoundingClientRect();\n                const endX = e.clientX - rect.left;\n                const endY = e.clientY - rect.top;\n                \n                selections[index] = {\n                    x: Math.min(startX, endX),\n                    y: Math.min(startY, endY),\n                    width: Math.abs(endX - startX),\n                    height: Math.abs(endY - startY)\n                };\n                \n                if (selections[index].width > 0 && selections[index].height > 0) {\n                    analyzeSelection(index);\n                }\n            });\n        }\n        \n        \/\/ \uc120\ud0dd \uc601\uc5ed \ubd84\uc11d\n        function analyzeSelection(index) {\n            const selection = selections[index];\n            if (!selection || !images[index]) return;\n            \n            const canvas = document.getElementById(`canvas${index + 1}`);\n            const ctx = canvas.getContext('2d');\n            const threshold = thresholds[index];\n            \n            const imageData = ctx.getImageData(\n                selection.x, selection.y,\n                selection.width, selection.height\n            );\n            \n            const pixels = imageData.data;\n            const totalPixels = selection.width * selection.height;\n            let brightPixelCount = 0;\n            let totalBrightness = 0;\n            \n            for (let i = 0; i < pixels.length; i += 4) {\n                const gray = (pixels[i] + pixels[i + 1] + pixels[i + 2]) \/ 3;\n                totalBrightness += gray;\n                \n                if (gray > threshold) {\n                    brightPixelCount++;\n                }\n            }\n            \n            const brightPercentage = (brightPixelCount \/ totalPixels * 100).toFixed(2);\n            const avgBrightness = (totalBrightness \/ totalPixels).toFixed(2);\n            \n            analysisResults[index] = {\n                totalPixels,\n                brightPixels: brightPixelCount,\n                brightPercentage,\n                avgBrightness,\n                threshold\n            };\n            \n            \/\/ \uacb0\uacfc \ud45c\uc2dc\n            const resultsDiv = document.getElementById(`results${index + 1}`);\n            resultsDiv.innerHTML = `\n                <div class=\"result-item\">\n                    <span class=\"result-label\">\uc601\uc5ed \ud06c\uae30:<\/span>\n                    <span class=\"result-value\">${selection.width} \u00d7 ${selection.height}<\/span>\n                <\/div>\n                <div class=\"result-item\">\n                    <span class=\"result-label\">\ucd1d \ud53d\uc140:<\/span>\n                    <span class=\"result-value\">${totalPixels.toLocaleString()}<\/span>\n                <\/div>\n                <div class=\"result-item\">\n                    <span class=\"result-label\">\ubc1d\uc740 \ud53d\uc140:<\/span>\n                    <span class=\"result-value\">${brightPixelCount.toLocaleString()}<\/span>\n                <\/div>\n                <div class=\"result-item\">\n                    <span class=\"result-label\">\ube44\uc728:<\/span>\n                    <span class=\"result-value\">${brightPercentage}%<\/span>\n                <\/div>\n                <div class=\"result-item\">\n                    <span class=\"result-label\">\ud3c9\uade0 \ubc1d\uae30:<\/span>\n                    <span class=\"result-value\">${avgBrightness} \/ 255<\/span>\n                <\/div>\n            `;\n            resultsDiv.style.display = 'block';\n            \n            \/\/ \uc120\ud0dd \uc601\uc5ed \ub2e4\uc2dc \uadf8\ub9ac\uae30\n            ctx.drawImage(images[index], 0, 0);\n            ctx.strokeStyle = '#00ff00';\n            ctx.lineWidth = 2;\n            ctx.strokeRect(selection.x, selection.y, selection.width, selection.height);\n            ctx.fillStyle = 'rgba(0, 255, 0, 0.1)';\n            ctx.fillRect(selection.x, selection.y, selection.width, selection.height);\n            \n            updateSummaryTable();\n        }\n        \n        \/\/ \uc694\uc57d \ud14c\uc774\ube14 \uc5c5\ub370\uc774\ud2b8\n        function updateSummaryTable() {\n            const hasResults = analysisResults.some(result => result.totalPixels);\n            \n            if (!hasResults) {\n                summaryTable.style.display = 'none';\n                return;\n            }\n            \n            summaryTable.style.display = 'table';\n            summaryBody.innerHTML = '';\n            \n            analysisResults.forEach((result, index) => {\n                if (!result.totalPixels) return;\n                \n                const row = document.createElement('tr');\n                row.innerHTML = `\n                    <td>\uc774\ubbf8\uc9c0 ${index + 1}<\/td>\n                    <td>${result.threshold}<\/td>\n                    <td>${result.totalPixels.toLocaleString()}<\/td>\n                    <td>${result.brightPixels.toLocaleString()}<\/td>\n                    <td>${result.brightPercentage}%<\/td>\n                    <td>${result.avgBrightness}<\/td>\n                `;\n                summaryBody.appendChild(row);\n            });\n        }\n        \n        \/\/ \ubaa8\ub4e0 \uc774\ubbf8\uc9c0\uc5d0 \uc784\uacc4\uac12 \uc801\uc6a9\n        applyBtn.addEventListener('click', function() {\n            calculateThresholds();\n            \n            selections.forEach((selection, index) => {\n                if (selection && images[index]) {\n                    analyzeSelection(index);\n                }\n            });\n        });\n        \n        \/\/ \ubaa8\ub4e0 \uc120\ud0dd \ucd08\uae30\ud654\n        resetBtn.addEventListener('click', function() {\n            selections = [null, null, null, null];\n            analysisResults = [{}, {}, {}, {}];\n            \n            images.forEach((img, index) => {\n                if (img) {\n                    const canvas = document.getElementById(`canvas${index + 1}`);\n                    const ctx = canvas.getContext('2d');\n                    ctx.drawImage(img, 0, 0);\n                    \n                    document.getElementById(`results${index + 1}`).style.display = 'none';\n                }\n            });\n            \n            updateSummaryTable();\n        });\n    <\/script>\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>ICG \ub9bc\ud504\uc870\uc601\uc220(Indocyanine Green Lymphography) \ub9bc\ud504\ubd80\uc885\uc740 \uc720\ubc29\uc554 \uc218\uc220(\ud2b9\ud788 \uc561\uc640 \ub9bc\ud504\uc808 \uc808\uc81c\uc220, ALND) \ud6c4 \ubc1c\uc0dd\ud560 \uc218 \uc788\ub294 \uc8fc\uc694 \ud569\ubcd1\uc99d\uc785\ub2c8\ub2e4. \uc774 \uc9c8\ud658\uc740 \ub9cc\uc131 \uc5fc\uc99d, \uc12c\uc720\uc99d, \uc9c0\ubc29 \uce68\ucc29\uc744 \ub3d9\ubc18\ud558\ub294 \uc9c4\ud589\uc131 \uc9c8\ud658\uc73c\ub85c, \ud658\uc790\uc758 \uae30\ub2a5, \uac74\uac15 \ubc0f \uc0b6\uc758 \uc9c8\uc5d0 \ubd80\uc815\uc801\uc778 \uc601\ud5a5\uc744 \ubbf8\uce58\uba70, \ubc1c\ubcd1\ub960\uc774 9%\uc5d0\uc11c 42%\uae4c\uc9c0 \ub113\uac8c \ubcf4\uace0\ub429\ub2c8\ub2e4. \ub9bc\ud504\ubd80\uc885\uc740 \ucd08\uae30\uc5d0\ub294 \uc555\ubc15 \uc758\ub958 \ucc29\uc6a9 \ubc0f \uc7ac\ud65c \uce58\ub8cc\uc640 \uac19\uc740 \ubcf4\uc874\uc801 \uce58\ub8cc\ub85c \uc8fc\ub85c \uad00\ub9ac\ub418\uc9c0\ub9cc, \ub9bc\ud504<\/p>\n<p class=\"more-link\"><a href=\"https:\/\/hlxkickb.hostingkr.com\/index.php\/icg-literature\/\" class=\"themebutton2\">READ MORE<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-20","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/hlxkickb.hostingkr.com\/index.php\/wp-json\/wp\/v2\/pages\/20","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hlxkickb.hostingkr.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/hlxkickb.hostingkr.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/hlxkickb.hostingkr.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hlxkickb.hostingkr.com\/index.php\/wp-json\/wp\/v2\/comments?post=20"}],"version-history":[{"count":13,"href":"https:\/\/hlxkickb.hostingkr.com\/index.php\/wp-json\/wp\/v2\/pages\/20\/revisions"}],"predecessor-version":[{"id":94,"href":"https:\/\/hlxkickb.hostingkr.com\/index.php\/wp-json\/wp\/v2\/pages\/20\/revisions\/94"}],"wp:attachment":[{"href":"https:\/\/hlxkickb.hostingkr.com\/index.php\/wp-json\/wp\/v2\/media?parent=20"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}