How can I convert red curve in an image into a line ?

조회 수: 1 (최근 30일)
MMSAAH
MMSAAH 2019년 7월 11일
편집: John D'Errico 2019년 7월 11일
I have a skeletonized image (512*512*3) of type uint8. (See attached image)
I want to convert this image into a curve and translate it along the x axis without changing image dimensions.
Can anyone help me solving this task ?
Thanks in advance

채택된 답변

John D'Errico
John D'Errico 2019년 7월 11일
편집: John D'Errico 2019년 7월 11일
What does it mean to convert something into a "curve"? In fact, there is no need to do anything of the sort.
You have a picture of some red pixels, on a black background. You want to shift them by some amount in x. Easy, really.
  1. Find all red pixels. This will give you a list of pixel coordinates.
  2. Convert all of the found red pixels to black pixels in the image.
  3. Add your desired constant to the x coordinates that you found in step 1.
  4. Convert the bleck pixels at the new set of coordinates into red pixels.
Done. WTP? There was never any need to create some sort of unspecified thing as a curve, since all you wanted to do is shift a set of pixels in the image. In fact, creating a curve out of those pixels is a more complicated thing, since it must be some completely general curve as it is drawn. Then you would need to convert it back into pixel coordinates. So creating some sort of arbitrary curve is a waste of time and effort.

추가 답변 (1개)

dror yemini
dror yemini 2019년 7월 11일
ind=find(im2(:)>0);
[ii,jj]=ind2sub(size(im2),ind);
figure,imshow(im2);hold on;
plot(jj,ii,'wo')

태그

Community Treasure Hunt

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

Start Hunting!

Translated by