How to draw a line through multiple centroids? - matlab

[enter image description here](https://i.stack.imgur.com/oR1gQ.png)
[enter image description here](https://i.stack.imgur.com/v9fC9.png)
[enter image description here](https://i.stack.imgur.com/aI1Sp.png)
[enter image description here](https://i.stack.imgur.com/Md3BY.png)
[enter image description here](https://i.stack.imgur.com/Xhzfi.png)
[enter image description here](https://i.stack.imgur.com/Q0KXO.png)
[enter image description here](https://i.stack.imgur.com/JiZqp.png)
Above is the code for redobjectdetection, the next part is to basically draw a line through 4 of the dectected centroids before getting the angles that would be produced in between them. The red object detection works, but I would like to know how to draw a line through just 4 centroids and get the angle between each

Related

how to set specific part of the image to white and remaining part to black in matlab

I am trying to learn image processing and I just found one question related to my area of interest. I have an image in which there is two things one is mug and the other is thermos. I just want to show the cup in white color for that first i convert the image in graysacle and then I convert with imbinarize. This is my problem statement
Example 1
The original image on the left is given i.e., original.jpg. The middle image (theft 1) shows that mug is stolen from the original image. Now you have to generate the output in such a way that the stolen object i.e., the mug is visible only. The rightmost image shows the stolen object i.e., mug, that is the required output to be generate by your code.
This is an image the kind of output I want
This is my code for that
close all
I = imread('Original-min-min.JPG');
gray = rgb2gray(I)
BW = imbinarize(gray);
% Display the original image next to the binary version.
figure
imshowpair(gray,BW,'montage')
[r,c] = size(BW);
for i=1:r
for j=1:c
f=BW(i,j);
if f>127 && f<256
BW(i,j)=255;
end
end
end
figure
imshow(BW)
This is the output of my codeenter image description here
how to set black everything except cup i want the output like i upload the picture before

How to construct the superpixel boundaries on the original image?

I performed a superpixel segmentation to a specific image. In my hand are the original RGB image and the labeled image contours. How can I draw the superpixels in the image?
The solution is written in the MATLAB documentation. The relevant part is:
Read image into the workspace.
A = imread('kobi.png');
Calculate superpixels of the image.
[L,N] = superpixels(A,500);
Display the superpixel boundaries overlaid on the original image.
figure
BW = boundarymask(L);
imshow(imoverlay(A,BW,'cyan'),'InitialMagnification',67)

How to binarize gray ROI by keeping red background same?

I have a grayscale image plus a red background:
http://i.stack.imgur.com/ue7nq.jpg
In next step of image processing I want to binarize only the gray region of interest while keeping the red background as it is. But when I apply im2bw all of the image is converted to black and white, including the red background. How can I keep the red background as it is and convert the gray ROI to binary?
It's not clear to me what you are trying to do, but here are a few things (if you have the Image Processing Toolbox):
Create a mask out of the red in your leftmost image like this:
BWRGB=cat(3, im2bw(crp(:,:,1)), im2bw(crp(:,:,2)),im2bw(crp(:,:,3)));
BW2=BWRGB(:,:,1)&(~BWRGB(:,:,2)&~BWRGB(:,:,3));
imshow(BW2);
Then populate the 3 layers of the RGB image using the mask:
BW3=im2bw(YourImage);
BW3(:,:,1)=BW3(:,:,1).*BW2+(255*double(~BW2));
BW3(:,:,2)=BW3(:,:,1).*BW2;
BW3(:,:,3)=BW3(:,:,1).*BW2;
imshow(im2uint8(BW3));
Result:

To create red-blue-green colormap for medical imaging?

I run
imagesc(real(lena))
colormap(hsv)
where lena is a picture in 512x512 pixels.
I would like to get the special red-green-blue colormap like here discussed.
A picture processed by it:
How can you get such a colors by the command colormap?
Use colormap bone to get this gray-ish blue-ish tones for your medical images.
Here's an example of this colormap taken from Mathworks:
See manual for more examples and pre-defined color maps.
Note that the paper describes a way to combine two images, it does not use a color map.
If a is the gray-scale normal MRI image, and b is the gray-scale contrast-enhanced MRI image, the paper proposes to use cat(3,a,b,a) as an RGB image, where contrast-enhancement appears as a green overlay. What that statement does is use the normal image as the red and blue channel, and the contrast-enhanced image as the green channel.

How to find a particular cropped image into the original image?

I am performing the following steps:
I insert a mark in an original image img1 to obtain a watermarked image img2.
I crop the the watermarked image to obtain img3.
I want to crop a particular part of the original image img1 to obtain the same part like img3.
My question is how to find where the cropped part is located in the orignal image?
You could use cross-correlation http://www.mathworks.ch/ch/help/images/ref/normxcorr2.html
Here is an example http://www.mathworks.ch/products/demos/image/cross_correlation/imreg.html
If the cropped image has been resized I think your problem is more similar to this one http://thydzik.com/matlab-scaled-image-normalized-cross-correlation/