A simple question on image processing

Hello every body, I have uploaded a simple image on the website:
I would like to extract the outlined portion only. I just startted learning MATLAB. Could any body suggests how I can extract that part of image?
Thanks.

5 Comments

Is the outlined portion enclosed in the red dashed circle?
Google reports and error in attempting to access that image.
That one does not have any outlined area or any red dashed circle, so I cannot tell what needs to be extracted.
Basically about half way out the blob, there is a thin, faint, noisy, interrupted "ring" of dark pixels. That is what she wants to find.

Sign in to comment.

Answers (3)

What do you mean by "extract"? Do you mean you want an image with everything outside the circle blackened? Do you want the bounding box of it cropped out to another, smaller image? Do you just want a list of all pixels inside the circle in a 1D list?

15 Comments

Image Analyst
Image Analyst on 10 Apr 2013
Edited: Image Analyst on 10 Apr 2013
Do you already know the coordinates of the red circle? You should if you plotted it. Otherwise, find the red circle pixels, and then use bwconvhull to make a solid disk mask out of it. Then find the bounding box of the mask (a couple of different ways to do that, such as regionprops), then use imcrop().
Shamima
Shamima on 10 Apr 2013
Edited: Image Analyst on 10 Apr 2013
Hi, thanks for the comments. There won't be any red pixel boundary, I have put the original image to the following link: https://docs.google.com/file/d/0BwwPVFIzkQWSYTU4OVNqN24zdE0/edit?usp=sharing
I need to crop out a portion as shown with some indentation mark in the original image. How can I crop up that portion. Thanks.
I would threshold and find the centroid. Then I'd send out a bunch (maybe 2 * (rows+columns)) lines out with improfile(). Sum them to get the average radial profile. Then hopefully by looking at that you can find the "notch" at the certain radius. Then use poly2mask(), etc.
Thanks for your comments. I am a bit new in MATLAB. Could you be a bit more elaborate on finding out the notch at certain radius?
I probably won't have time for that until the weekend, if even then. By that time, you'll probably have this solved. Post what code you have at the time you stop developing it and I may get to it in the next few days. Remember, we're volunteers with real jobs, not paid tech support people.
I have applied mask as follows:
mask01=slice01<=90 for thresholding. I have placed the output on the following link:
https://drive.google.com/folderview?id=0BwwPVFIzkQWSSVVTSXlKbWd1Qlk&usp=sharing
But I am not sure how to proceed to the next step. Please provide some suggestions.
I think I got what you suggested. After thresholding the border is clearer. Now if I start from center on ward at a certain radius each time and move onward by averaging the radial pixel values, there will be a sharp deviation at the indented portion. But i don't know how to write the syntax in MATLAB, I need some suggestion.
Hello, I found the centroid of the image and then gradually tried to move radially outward. But center does not coincide with the ceter of the circle. in that case, how can I find the notch/ indent? Please provide some suggestion.
Then why not let the user click on some points along the circle perimeter and use the circle fitting code in the FAQ to find it? Or let the user click at the center and then take radial profiles to find the radius?
I would like to develop some automatic algorithm. Could you give me the link to the circle fitting algorithm? Sorry, I am totally new in MATLAB.
Thank you. But I have a number of images, trying to develop some automatic algorthm to identify the notch. Could you provide some suggestion about that. As when the number of images are large, user intervention may not be good. I am trying to compare pixel values for different images of same series but as pixel values not uniform, yet to find out a suitable logic to make it automatic.
Have you experimented around with imfindcircles() and hough()?
I need to see how to use these functions in MATLAB. At this moment, I have displayed the images using C program and I found for a certain arc length, along the indent/ notch the pixel value is very high. For a small portion of arc length, I find this property in all images after thresholding. Now from that small piece of arc lenth, i need to find correct center by varying the angle for particular arc length. If you any good algorithm about this, please let me know. I am not sure whether I am proceeding on the right track. As I am not familiar with MATLAB, I find difficulty in using the MATLAB functions.
Cedric
Cedric on 15 Apr 2013
Edited: Cedric on 15 Apr 2013
>> As I am not familiar with MATLAB, I find difficulty in using the MATLAB functions.
At this point, I would recommend the official documentation available here. If you are already familiar with another language, you would spend probably no more than a long day full time, which would prevent you from being constantly pulled back by lack of knowledge about MATLAB basics (which are not trivial, especially if you have a challenging application to develop). I would recommend the following actually:
Under MATLAB, you could get..
  • PDF labeled "MATLAB Primer" and study chapters 2 and 5.
  • PDF labeled "Mathematics", and train to have a good mastery of chapters 1 and 9.
  • PDF labeled "Programming Fundamentals" and have a look at the table of content so you can use it as a reference later.
There would also be the User's Guide under Image Processing Toolbox, which contains a significant amount of examples and illustrations.

Sign in to comment.

Shamima
Shamima on 10 Apr 2013
Yes, I would like to remove every thing outside the outlined boundary. I only need the portion that lies inside the boundary. Thanks.

4 Comments

This should have been a comment, not an "Answer."
yes, it should be a comment. sorry for that. I would like to consider the portion interior to boundary only.
See the comment in my answer above.
Hi, thanks for the comments. There won't be any red pixel boundary, I have put the original image to the following link:
https://docs.google.com/file/d/0BwwPVFIzkQWSYTU4OVNqN24zdE0/edit?usp=sharing
I need to crop out a portion as shown with some indentation mark in the original image. How can I crop up that portion. Thanks.

Sign in to comment.

% create pre-processed datastore
imdb = imageDatastore(db_path,...
'IncludeSubfolders',true,...
'LabelSource','foldernames',...
'ReadFcn',@readCBIR);
Does anything wrong in this command

Categories

Asked:

on 10 Apr 2013

Answered:

on 21 Jun 2020

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!