Giter VIP home page Giter VIP logo

lung-image-analysis's Introduction

Lung Image Analysis Framework

Note: Here is a full system for lung cancer screening radiomics. https://github.com/taznux/LungCancerScreeningRadiomics

A basic framework for pulmonary nodule detection and characterization in CT

Tested on LIDC-IDRI dataset (https://wiki.cancerimagingarchive.net/display/Public/LIDC-IDRI)

  • LIDC xml parsing
  • Evaluation of nodule segmentation, detection and characterization by LIDC xml annotations

written in Matlab (tested in v2013b and v2016a, and required Image Processing Toolbox) by Wookjin Choi and Ji-Seok Yoon

lung-image-analysis's People

Contributors

taznux avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

lung-image-analysis's Issues

What is the proper way to run this?

Hi I'm just a Matlab hobbyist, this project seemed very interesting, I'm just wondering what the proper way is to run this project.

Thanks

Project Deign Confusion +.sid issue

HI again,
So I was running this project, first I get an error at line 207 in main.m

I get the error
error: matrix cannot be indexed with .
error: called from
    main at line 207 column 1
error: evaluating argument list element number 1
error: called from
    main at line 207 column 1

So then I change
for sid = unique(nodule_detection_evaluation.sid)'
to
for sid = unique(nodule_detection_evaluation)'
Then this is where I'm having trouble understanding the design of the project.
So when I input about 133 LIDC_IDRC images (DICOM) like this

path_nodule = [pwd '/output_data']; %pwd : returns the current directory
path_data = [pwd '/Users/aneeshers/Documents/LIDC-DRI/DICOM']; %dcm files directory

This than results to
nodule_detection_summary = [](0x0)
Which doesn't sound right. So after experimenting different paths and what not, I decided to see what happens when no path is given like so
path_data = [pwd '']; %dcm files directory
Which also gave me the same result!
So then I concluded that it was not the right place to out the path, I tried it in the output path because of the name path_nodule. But that also did not work out well. So then I start retracing the input which looks like it is
filename_input = [ct_img_path pid '_input.mat'];
What I don't understand is what the pids is and what it is for? I opened it in the output file generated, which just shows

# Created by Octave 4.0.3, Thu Dec 29 22:48:06 2016 EST <[email protected]>
# name: dicom_path_list
# type: cell
# rows: 0
# columns: 0


# name: pid_list
# type: cell
# rows: 0
# columns: 0

So yea that's so far that's been in my mind, then I tested the dicom read function by immediately assigning
ipath = '/Users/aneeshers/Documents/LIDC-DRI/DICOM'
I'm still testing this part......
## So what would be the appropriate way to input the data? Is it possible to show me an example of your dicom_pid_list.mat?

Thank you so much for your time and effort, Aneeshers

How to properly evaluate

Hey @taznux,
I'm very excited that the code has now finally functioned properly! So now after running the program, I was wondering how you evaluate the result.... For example like where to find the coordinates of the nodules detected per CT slice or like an image of the nodule etc... Or like a key to how to read the results?
Thank you for your hard work, Aneesh
Happy 2017!

FP reduction code is not in main.m

Hi,

I'm trying to use this framework to detect nodule but found the FP reduction code is not in main.m. Once I run this code, for each patient, I got more than 900 nodules. It will be great if you can share with me how to do FP reduction to achieve the same result as your paper.

Thanks

Input issue + .sid issue

@taznux Hi It's aneeshers again,
So as you suggested last time, I switched to Matlab R2016a , although I get the same errors.
First I get the error

Struct contents reference from a non-struct array object.

Error in main (line 207)
for sid = unique(nodule_detection_evaluation.sid)'

screen shot 2016-12-30 at 4 56 54 pm

So then I change for sid = unique(nodule_detection_evaluation.sid)' to for sid = unique(nodule_detection_evaluation)'
Although I feel this is not the real issue, after I do this I get a running program, except it's using a different variable as an input rather than path_data = '/Users/aneeshmuppidi/Documents/LIDC-DRI/LIDC-IDRI-DICOM'; %dcm files directory
I run the program with a regular input, and I just get an output of
nodule_detection_summary = []
Then I input no file path, I get the same result.
After I do more retracing of the code, I find that
filename_input = [ct_img_path pid '_input.mat'];
Is actually taking inputs from a dicomImage_input.mat for each number of dicom images, I believe the dicomNumber_input.mat is being generated from fn_scan_pid.m
Also I noticed that the filename_input = [ct_img_path pid '_input.mat'];
is looking for a Dicomimage_input.mat from ct_img_path which is actually Output/CT_Images
Which I'm kind of confused.
So far that is my belief about this, I'm still confused, hopefully you can help me.

Thank you, Aneeshers.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.