Quantcast

Patch/cluster indentification [1 Attachment]

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Patch/cluster indentification [1 Attachment]

opencv-users mailing list
Dear All,
 

 I have images like this as attached. The red patch in the center can be of any shape & anywhere.
 I need to identify these patches whether present or not and which part of the circle.
 I have used contour, blob, hull etc...nothing is able to cluster the patch separately.
 Even each dot is identified as blob. Any idea how can I go ahead?
 I use python.
 

 Thanks
 
 Das
 

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Patch/cluster indentification

opencv-users mailing list
That seems weird for "raw data". Do you have it available as any other
information? Because it seems computer-generated such that you might be
fighting against yourself in some horrible ways.

That said, my first approach would be to try to turn it into something
simpler. I see a few options depending on how much you can trust the image:

0) desperately try to get the data in a more computer-friendly format ;)
1) if the circles are exactly in a grid always, I would "sample" one
point from the center of each circle and make that your actual image for
doing segmentation on.
2) alternately: dilate the image until all the white between the circles
is gone; then flood-fill the background with blue. At that point you can
do blob detection and check the area to determine if it's a blob the
size you want.

-kaolin

On 4/21/17 3:43 AM, [hidden email] [OpenCV] wrote:

> [Attachment(s) <#TopText> from [hidden email] [OpenCV] included
> below]
>
> Dear All,
>
>
> I have images like this as attached. The red patch in the center can
> be of any shape & anywhere.
>
> I need to identify these patches whether present or not and which part
> of the circle.
>
> I have used contour, blob, hull etc...nothing is able to cluster the
> patch separately.
>
> Even each dot is identified as blob. Any idea how can I go ahead?
>
> I use python.
>
>
> Thanks
>
> Das
>
>
>


Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Patch/cluster indentification [1 Attachment]

opencv-users mailing list
Thanks! You got my problem. However rawdata is available. I have attached.Kindly provide your suggestions.
RegardsDas

      From: "Kaolin Fire [hidden email] [OpenCV]" <[hidden email]>
 To: [hidden email]
 Sent: Saturday, April 22, 2017 1:53 AM
 Subject: Re: [OpenCV] Patch/cluster indentification
   
     That seems weird for "raw data". Do you have it available as any other information? Because it seems computer-generated such that you might be fighting against yourself in some horrible ways.
 
 That said, my first approach would be to try to turn it into something simpler. I see a few options depending on how much you can trust the image:
 
 0) desperately try to get the data in a more computer-friendly format ;)
 1) if the circles are exactly in a grid always, I would "sample" one point from the center of each circle and make that your actual image for doing segmentation on.
 2) alternately: dilate the image until all the white between the circles is gone; then flood-fill the background with blue. At that point you can do blob detection and check the area to determine if it's a blob the size you want.
 
 -kaolin
 
 On 4/21/17 3:43 AM, [hidden email] [OpenCV] wrote:
 
    Dear All,
  I have images like this as attached. The red patch in the center can be of any shape & anywhere. I need to identify these patches whether present or not and which part of the circle. I have used contour, blob, hull etc...nothing is able to cluster the patch separately. Even each dot is identified as blob. Any idea how can I go ahead? I use python.
  Thanks  Das
   
 
   #yiv2927024328 #yiv2927024328 -- #yiv2927024328ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv2927024328 #yiv2927024328ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv2927024328 #yiv2927024328ygrp-mkp #yiv2927024328hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv2927024328 #yiv2927024328ygrp-mkp #yiv2927024328ads {margin-bottom:10px;}#yiv2927024328 #yiv2927024328ygrp-mkp .yiv2927024328ad {padding:0 0;}#yiv2927024328 #yiv2927024328ygrp-mkp .yiv2927024328ad p {margin:0;}#yiv2927024328 #yiv2927024328ygrp-mkp .yiv2927024328ad a {color:#0000ff;text-decoration:none;}#yiv2927024328 #yiv2927024328ygrp-sponsor #yiv2927024328ygrp-lc {font-family:Arial;}#yiv2927024328 #yiv2927024328ygrp-sponsor #yiv2927024328ygrp-lc #yiv2927024328hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv2927024328 #yiv2927024328ygrp-sponsor #yiv2927024328ygrp-lc .yiv2927024328ad {margin-bottom:10px;padding:0 0;}#yiv2927024328 #yiv2927024328actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv2927024328 #yiv2927024328activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv2927024328 #yiv2927024328activity span {font-weight:700;}#yiv2927024328 #yiv2927024328activity span:first-child {text-transform:uppercase;}#yiv2927024328 #yiv2927024328activity span a {color:#5085b6;text-decoration:none;}#yiv2927024328 #yiv2927024328activity span span {color:#ff7900;}#yiv2927024328 #yiv2927024328activity span .yiv2927024328underline {text-decoration:underline;}#yiv2927024328 .yiv2927024328attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv2927024328 .yiv2927024328attach div a {text-decoration:none;}#yiv2927024328 .yiv2927024328attach img {border:none;padding-right:5px;}#yiv2927024328 .yiv2927024328attach label {display:block;margin-bottom:5px;}#yiv2927024328 .yiv2927024328attach label a {text-decoration:none;}#yiv2927024328 blockquote {margin:0 0 0 4px;}#yiv2927024328 .yiv2927024328bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv2927024328 .yiv2927024328bold a {text-decoration:none;}#yiv2927024328 dd.yiv2927024328last p a {font-family:Verdana;font-weight:700;}#yiv2927024328 dd.yiv2927024328last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv2927024328 dd.yiv2927024328last p span.yiv2927024328yshortcuts {margin-right:0;}#yiv2927024328 div.yiv2927024328attach-table div div a {text-decoration:none;}#yiv2927024328 div.yiv2927024328attach-table {width:400px;}#yiv2927024328 div.yiv2927024328file-title a, #yiv2927024328 div.yiv2927024328file-title a:active, #yiv2927024328 div.yiv2927024328file-title a:hover, #yiv2927024328 div.yiv2927024328file-title a:visited {text-decoration:none;}#yiv2927024328 div.yiv2927024328photo-title a, #yiv2927024328 div.yiv2927024328photo-title a:active, #yiv2927024328 div.yiv2927024328photo-title a:hover, #yiv2927024328 div.yiv2927024328photo-title a:visited {text-decoration:none;}#yiv2927024328 div#yiv2927024328ygrp-mlmsg #yiv2927024328ygrp-msg p a span.yiv2927024328yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv2927024328 .yiv2927024328green {color:#628c2a;}#yiv2927024328 .yiv2927024328MsoNormal {margin:0 0 0 0;}#yiv2927024328 o {font-size:0;}#yiv2927024328 #yiv2927024328photos div {float:left;width:72px;}#yiv2927024328 #yiv2927024328photos div div {border:1px solid #666666;height:62px;overflow:hidden;width:62px;}#yiv2927024328 #yiv2927024328photos div label {color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv2927024328 #yiv2927024328reco-category {font-size:77%;}#yiv2927024328 #yiv2927024328reco-desc {font-size:77%;}#yiv2927024328 .yiv2927024328replbq {margin:4px;}#yiv2927024328 #yiv2927024328ygrp-actbar div a:first-child {margin-right:2px;padding-right:5px;}#yiv2927024328 #yiv2927024328ygrp-mlmsg {font-size:13px;font-family:Arial, helvetica, clean, sans-serif;}#yiv2927024328 #yiv2927024328ygrp-mlmsg table {font-size:inherit;font:100%;}#yiv2927024328 #yiv2927024328ygrp-mlmsg select, #yiv2927024328 input, #yiv2927024328 textarea {font:99% Arial, Helvetica, clean, sans-serif;}#yiv2927024328 #yiv2927024328ygrp-mlmsg pre, #yiv2927024328 code {font:115% monospace;}#yiv2927024328 #yiv2927024328ygrp-mlmsg * {line-height:1.22em;}#yiv2927024328 #yiv2927024328ygrp-mlmsg #yiv2927024328logo {padding-bottom:10px;}#yiv2927024328 #yiv2927024328ygrp-msg p a {font-family:Verdana;}#yiv2927024328 #yiv2927024328ygrp-msg p#yiv2927024328attach-count span {color:#1E66AE;font-weight:700;}#yiv2927024328 #yiv2927024328ygrp-reco #yiv2927024328reco-head {color:#ff7900;font-weight:700;}#yiv2927024328 #yiv2927024328ygrp-reco {margin-bottom:20px;padding:0px;}#yiv2927024328 #yiv2927024328ygrp-sponsor #yiv2927024328ov li a {font-size:130%;text-decoration:none;}#yiv2927024328 #yiv2927024328ygrp-sponsor #yiv2927024328ov li {font-size:77%;list-style-type:square;padding:6px 0;}#yiv2927024328 #yiv2927024328ygrp-sponsor #yiv2927024328ov ul {margin:0;padding:0 0 0 8px;}#yiv2927024328 #yiv2927024328ygrp-text {font-family:Georgia;}#yiv2927024328 #yiv2927024328ygrp-text p {margin:0 0 1em 0;}#yiv2927024328 #yiv2927024328ygrp-text tt {font-size:120%;}#yiv2927024328 #yiv2927024328ygrp-vital ul li:last-child {border-right:none !important;}#yiv2927024328

   
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Patch/cluster indentification

opencv-users mailing list
Excellent! That looks like a well-ordered grid. :)

So the easiest solution I think would just be to make a 44x40
cv::Mat<int8> ... where your values are 0 for fail-or-not-specified and
255 for , f(x,y)each x/y a single pixel, black/white. You should be able
to do connected components to get each "blob" (4-connected or
9-connected depending on what is relevant to you).

-kaolin

On 4/21/17 5:29 PM, Abhijit Das [hidden email] [OpenCV] wrote:

> [Attachment(s) <#TopText> from Abhijit Das included below]
> Thanks! You got my problem. However rawdata is available. I have attached.
> Kindly provide your suggestions.
>
> Regards
> Das
>
>
> ------------------------------------------------------------------------
> *From:* "Kaolin Fire [hidden email] [OpenCV]" <[hidden email]>
> *To:* [hidden email]
> *Sent:* Saturday, April 22, 2017 1:53 AM
> *Subject:* Re: [OpenCV] Patch/cluster indentification
>
> That seems weird for "raw data". Do you have it available as any other
> information? Because it seems computer-generated such that you might
> be fighting against yourself in some horrible ways.
>
> That said, my first approach would be to try to turn it into something
> simpler. I see a few options depending on how much you can trust the
> image:
>
> 0) desperately try to get the data in a more computer-friendly format ;)
> 1) if the circles are exactly in a grid always, I would "sample" one
> point from the center of each circle and make that your actual image
> for doing segmentation on.
> 2) alternately: dilate the image until all the white between the
> circles is gone; then flood-fill the background with blue. At that
> point you can do blob detection and check the area to determine if
> it's a blob the size you want.
>
> -kaolin
>
> On 4/21/17 3:43 AM, [hidden email] <mailto:[hidden email]>
> [OpenCV] wrote:
>> Dear All,
>>
>> I have images like this as attached. The red patch in the center can
>> be of any shape & anywhere.
>> I need to identify these patches whether present or not and which
>> part of the circle.
>> I have used contour, blob, hull etc...nothing is able to cluster the
>> patch separately.
>> Even each dot is identified as blob. Any idea how can I go ahead?
>> I use python.
>>
>> Thanks
>> Das
>>
>
>
>
>


Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Patch/cluster indentification

opencv-users mailing list
Er—4-connected or 8-connected.

-kaolin

On 4/21/17 7:18 PM, Kaolin Fire [hidden email] [OpenCV] wrote:

>
> Excellent! That looks like a well-ordered grid. :)
>
> So the easiest solution I think would just be to make a 44x40
> cv::Mat<int8> ... where your values are 0 for fail-or-not-specified
> and 255 for , f(x,y)each x/y a single pixel, black/white. You should
> be able to do connected components to get each "blob" (4-connected or
> 9-connected depending on what is relevant to you).
>
> -kaolin
>
> On 4/21/17 5:29 PM, Abhijit Das [hidden email] [OpenCV] wrote:
>> Thanks! You got my problem. However rawdata is available. I have
>> attached.
>> Kindly provide your suggestions.
>>
>> Regards
>> Das
>>
>>
>> ------------------------------------------------------------------------
>> *From:* "Kaolin Fire [hidden email] [OpenCV]" <[hidden email]>
>> *To:* [hidden email]
>> *Sent:* Saturday, April 22, 2017 1:53 AM
>> *Subject:* Re: [OpenCV] Patch/cluster indentification
>>
>> That seems weird for "raw data". Do you have it available as any
>> other information? Because it seems computer-generated such that you
>> might be fighting against yourself in some horrible ways.
>>
>> That said, my first approach would be to try to turn it into
>> something simpler. I see a few options depending on how much you can
>> trust the image:
>>
>> 0) desperately try to get the data in a more computer-friendly format ;)
>> 1) if the circles are exactly in a grid always, I would "sample" one
>> point from the center of each circle and make that your actual image
>> for doing segmentation on.
>> 2) alternately: dilate the image until all the white between the
>> circles is gone; then flood-fill the background with blue. At that
>> point you can do blob detection and check the area to determine if
>> it's a blob the size you want.
>>
>> -kaolin
>>
>> On 4/21/17 3:43 AM, [hidden email] <mailto:[hidden email]>
>> [OpenCV] wrote:
>>> Dear All,
>>>
>>> I have images like this as attached. The red patch in the center can
>>> be of any shape & anywhere.
>>> I need to identify these patches whether present or not and which
>>> part of the circle.
>>> I have used contour, blob, hull etc...nothing is able to cluster the
>>> patch separately.
>>> Even each dot is identified as blob. Any idea how can I go ahead?
>>> I use python.
>>>
>>> Thanks
>>> Das
>>>
>>
>>
>>
>
>


Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Patch/cluster indentification

opencv-users mailing list
Thanks Kaolin!I work with Python. Is there any function available in opencv to reshape this matrix?MAT is not any more needed in Opencv 3.


      From: "Kaolin Fire [hidden email] [OpenCV]" <[hidden email]>
 To: [hidden email]
 Sent: Saturday, April 22, 2017 11:23 AM
 Subject: Re: [OpenCV] Patch/cluster indentification
   
     Er—4-connected or 8-connected.
 
 -kaolin
 
 On 4/21/17 7:18 PM, Kaolin Fire [hidden email] [OpenCV] wrote:
 
      Excellent! That looks like a well-ordered grid. :)
 
 So the easiest solution I think would just be to make a 44x40 cv::Mat<int8> ... where your values are 0 for fail-or-not-specified and 255 for , f(x,y)each x/y a single pixel, black/white. You should be able to do  connected components to get each "blob" (4-connected or 9-connected depending on what is relevant to you).
 
 -kaolin
 
 On 4/21/17 5:29 PM, Abhijit Das [hidden email] [OpenCV] wrote:
 
     Thanks! You got my problem. However rawdata is available. I have attached. Kindly provide your suggestions.
  Regards Das
 
        From: "Kaolin Fire [hidden email] [OpenCV]" <[hidden email]>
 To: [hidden email]
 Sent: Saturday, April 22, 2017 1:53 AM
 Subject: Re: [OpenCV] Patch/cluster indentification
 
          That seems weird for "raw data". Do you have it available as any other information? Because it  seems computer-generated such that you might be fighting against yourself in some horrible ways.
 
 That said, my first approach would be to try to turn it into something simpler. I see a few options depending on how much you can trust the image:
 
 0) desperately try to get the data in a more computer-friendly format  ;)
 1) if the circles are exactly in a grid always, I would "sample" one  point from the center of each circle and make that your actual image for doing segmentation on.
 2) alternately: dilate the image until all the white between the circles is gone; then flood-fill the background with blue. At that point you can do blob detection  and check the area to determine if it's a blob the size you want.
 
 -kaolin
 
 On 4/21/17 3:43 AM, [hidden email] [OpenCV] wrote:
 
    Dear All,
  I have images like this as attached. The red patch in the center can be of any shape  & anywhere. I need to identify these patches whether present or not and which part of the circle. I have used contour, blob, hull etc...nothing is able to cluster the patch separately. Even each dot is identified as blob. Any idea how can I go ahead? I use python.
  Thanks  Das
   
 
     
 
       
 
   
 
   #yiv0158108965 #yiv0158108965 -- #yiv0158108965ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv0158108965 #yiv0158108965ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv0158108965 #yiv0158108965ygrp-mkp #yiv0158108965hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv0158108965 #yiv0158108965ygrp-mkp #yiv0158108965ads {margin-bottom:10px;}#yiv0158108965 #yiv0158108965ygrp-mkp .yiv0158108965ad {padding:0 0;}#yiv0158108965 #yiv0158108965ygrp-mkp .yiv0158108965ad p {margin:0;}#yiv0158108965 #yiv0158108965ygrp-mkp .yiv0158108965ad a {color:#0000ff;text-decoration:none;}#yiv0158108965 #yiv0158108965ygrp-sponsor #yiv0158108965ygrp-lc {font-family:Arial;}#yiv0158108965 #yiv0158108965ygrp-sponsor #yiv0158108965ygrp-lc #yiv0158108965hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv0158108965 #yiv0158108965ygrp-sponsor #yiv0158108965ygrp-lc .yiv0158108965ad {margin-bottom:10px;padding:0 0;}#yiv0158108965 #yiv0158108965actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv0158108965 #yiv0158108965activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv0158108965 #yiv0158108965activity span {font-weight:700;}#yiv0158108965 #yiv0158108965activity span:first-child {text-transform:uppercase;}#yiv0158108965 #yiv0158108965activity span a {color:#5085b6;text-decoration:none;}#yiv0158108965 #yiv0158108965activity span span {color:#ff7900;}#yiv0158108965 #yiv0158108965activity span .yiv0158108965underline {text-decoration:underline;}#yiv0158108965 .yiv0158108965attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv0158108965 .yiv0158108965attach div a {text-decoration:none;}#yiv0158108965 .yiv0158108965attach img {border:none;padding-right:5px;}#yiv0158108965 .yiv0158108965attach label {display:block;margin-bottom:5px;}#yiv0158108965 .yiv0158108965attach label a {text-decoration:none;}#yiv0158108965 blockquote {margin:0 0 0 4px;}#yiv0158108965 .yiv0158108965bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv0158108965 .yiv0158108965bold a {text-decoration:none;}#yiv0158108965 dd.yiv0158108965last p a {font-family:Verdana;font-weight:700;}#yiv0158108965 dd.yiv0158108965last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv0158108965 dd.yiv0158108965last p span.yiv0158108965yshortcuts {margin-right:0;}#yiv0158108965 div.yiv0158108965attach-table div div a {text-decoration:none;}#yiv0158108965 div.yiv0158108965attach-table {width:400px;}#yiv0158108965 div.yiv0158108965file-title a, #yiv0158108965 div.yiv0158108965file-title a:active, #yiv0158108965 div.yiv0158108965file-title a:hover, #yiv0158108965 div.yiv0158108965file-title a:visited {text-decoration:none;}#yiv0158108965 div.yiv0158108965photo-title a, #yiv0158108965 div.yiv0158108965photo-title a:active, #yiv0158108965 div.yiv0158108965photo-title a:hover, #yiv0158108965 div.yiv0158108965photo-title a:visited {text-decoration:none;}#yiv0158108965 div#yiv0158108965ygrp-mlmsg #yiv0158108965ygrp-msg p a span.yiv0158108965yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv0158108965 .yiv0158108965green {color:#628c2a;}#yiv0158108965 .yiv0158108965MsoNormal {margin:0 0 0 0;}#yiv0158108965 o {font-size:0;}#yiv0158108965 #yiv0158108965photos div {float:left;width:72px;}#yiv0158108965 #yiv0158108965photos div div {border:1px solid #666666;height:62px;overflow:hidden;width:62px;}#yiv0158108965 #yiv0158108965photos div label {color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv0158108965 #yiv0158108965reco-category {font-size:77%;}#yiv0158108965 #yiv0158108965reco-desc {font-size:77%;}#yiv0158108965 .yiv0158108965replbq {margin:4px;}#yiv0158108965 #yiv0158108965ygrp-actbar div a:first-child {margin-right:2px;padding-right:5px;}#yiv0158108965 #yiv0158108965ygrp-mlmsg {font-size:13px;font-family:Arial, helvetica, clean, sans-serif;}#yiv0158108965 #yiv0158108965ygrp-mlmsg table {font-size:inherit;font:100%;}#yiv0158108965 #yiv0158108965ygrp-mlmsg select, #yiv0158108965 input, #yiv0158108965 textarea {font:99% Arial, Helvetica, clean, sans-serif;}#yiv0158108965 #yiv0158108965ygrp-mlmsg pre, #yiv0158108965 code {font:115% monospace;}#yiv0158108965 #yiv0158108965ygrp-mlmsg * {line-height:1.22em;}#yiv0158108965 #yiv0158108965ygrp-mlmsg #yiv0158108965logo {padding-bottom:10px;}#yiv0158108965 #yiv0158108965ygrp-msg p a {font-family:Verdana;}#yiv0158108965 #yiv0158108965ygrp-msg p#yiv0158108965attach-count span {color:#1E66AE;font-weight:700;}#yiv0158108965 #yiv0158108965ygrp-reco #yiv0158108965reco-head {color:#ff7900;font-weight:700;}#yiv0158108965 #yiv0158108965ygrp-reco {margin-bottom:20px;padding:0px;}#yiv0158108965 #yiv0158108965ygrp-sponsor #yiv0158108965ov li a {font-size:130%;text-decoration:none;}#yiv0158108965 #yiv0158108965ygrp-sponsor #yiv0158108965ov li {font-size:77%;list-style-type:square;padding:6px 0;}#yiv0158108965 #yiv0158108965ygrp-sponsor #yiv0158108965ov ul {margin:0;padding:0 0 0 8px;}#yiv0158108965 #yiv0158108965ygrp-text {font-family:Georgia;}#yiv0158108965 #yiv0158108965ygrp-text p {margin:0 0 1em 0;}#yiv0158108965 #yiv0158108965ygrp-text tt {font-size:120%;}#yiv0158108965 #yiv0158108965ygrp-vital ul li:last-child {border-right:none !important;}#yiv0158108965

   
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Patch/cluster indentification

opencv-users mailing list
Actually I am able to do using this:df = pd.pivot_table(df, values = 'Category', columns=['x-coord'], index=['y-coord'])
Next I need to try get the blobs. Will keep you updated.

      From: "Abhijit Das [hidden email] [OpenCV]" <[hidden email]>
 To: "[hidden email]" <[hidden email]>
 Sent: Sunday, April 23, 2017 1:52 PM
 Subject: Re: [OpenCV] Patch/cluster indentification
   
    Thanks Kaolin!I work with Python. Is there any function available in opencv to reshape this matrix?MAT is not any more needed in Opencv 3.


      From: "Kaolin Fire [hidden email] [OpenCV]" <[hidden email]>
 To: [hidden email]
 Sent: Saturday, April 22, 2017 11:23 AM
 Subject: Re: [OpenCV] Patch/cluster indentification
 
     Er—4-connected or 8-connected.
 
 -kaolin
 
 On 4/21/17 7:18 PM, Kaolin Fire [hidden email] [OpenCV] wrote:
 
      Excellent! That looks like a well-ordered grid. :)
 
 So the easiest solution I think would just be to make a 44x40 cv::Mat<int8> ... where your values are 0 for fail-or-not-specified and 255 for , f(x,y)each x/y a single pixel, black/white. You should be able to do  connected components to get each "blob" (4-connected or 9-connected depending on what is relevant to you).
 
 -kaolin
 
 On 4/21/17 5:29 PM, Abhijit Das [hidden email] [OpenCV] wrote:
 
     Thanks! You got my problem. However rawdata is available. I have attached. Kindly provide your suggestions.
  Regards Das
 
        From: "Kaolin Fire [hidden email] [OpenCV]" <[hidden email]>
 To: [hidden email]
 Sent: Saturday, April 22, 2017 1:53 AM
 Subject: Re: [OpenCV] Patch/cluster indentification
 
          That seems weird for "raw data". Do you have it available as any other information? Because it  seems computer-generated such that you might be fighting against yourself in some horrible ways.
 
 That said, my first approach would be to try to turn it into something simpler. I see a few options depending on how much you can trust the image:
 
 0) desperately try to get the data in a more computer-friendly format  ;)
 1) if the circles are exactly in a grid always, I would "sample" one  point from the center of each circle and make that your actual image for doing segmentation on.
 2) alternately: dilate the image until all the white between the circles is gone; then flood-fill the background with blue. At that point you can do blob detection  and check the area to determine if it's a blob the size you want.
 
 -kaolin
 
 On 4/21/17 3:43 AM, [hidden email] [OpenCV] wrote:
 
    Dear All,
  I have images like this as attached. The red patch in the center can be of any shape  & anywhere. I need to identify these patches whether present or not and which part of the circle. I have used contour, blob, hull etc...nothing is able to cluster the patch separately. Even each dot is identified as blob. Any idea how can I go ahead? I use python.
  Thanks  Das
   
 
     
 
       
 
   
 
   

     #yiv7223010016 #yiv7223010016 -- #yiv7223010016ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv7223010016 #yiv7223010016ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv7223010016 #yiv7223010016ygrp-mkp #yiv7223010016hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv7223010016 #yiv7223010016ygrp-mkp #yiv7223010016ads {margin-bottom:10px;}#yiv7223010016 #yiv7223010016ygrp-mkp .yiv7223010016ad {padding:0 0;}#yiv7223010016 #yiv7223010016ygrp-mkp .yiv7223010016ad p {margin:0;}#yiv7223010016 #yiv7223010016ygrp-mkp .yiv7223010016ad a {color:#0000ff;text-decoration:none;}#yiv7223010016 #yiv7223010016ygrp-sponsor #yiv7223010016ygrp-lc {font-family:Arial;}#yiv7223010016 #yiv7223010016ygrp-sponsor #yiv7223010016ygrp-lc #yiv7223010016hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv7223010016 #yiv7223010016ygrp-sponsor #yiv7223010016ygrp-lc .yiv7223010016ad {margin-bottom:10px;padding:0 0;}#yiv7223010016 #yiv7223010016actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv7223010016 #yiv7223010016activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv7223010016 #yiv7223010016activity span {font-weight:700;}#yiv7223010016 #yiv7223010016activity span:first-child {text-transform:uppercase;}#yiv7223010016 #yiv7223010016activity span a {color:#5085b6;text-decoration:none;}#yiv7223010016 #yiv7223010016activity span span {color:#ff7900;}#yiv7223010016 #yiv7223010016activity span .yiv7223010016underline {text-decoration:underline;}#yiv7223010016 .yiv7223010016attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv7223010016 .yiv7223010016attach div a {text-decoration:none;}#yiv7223010016 .yiv7223010016attach img {border:none;padding-right:5px;}#yiv7223010016 .yiv7223010016attach label {display:block;margin-bottom:5px;}#yiv7223010016 .yiv7223010016attach label a {text-decoration:none;}#yiv7223010016 blockquote {margin:0 0 0 4px;}#yiv7223010016 .yiv7223010016bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv7223010016 .yiv7223010016bold a {text-decoration:none;}#yiv7223010016 dd.yiv7223010016last p a {font-family:Verdana;font-weight:700;}#yiv7223010016 dd.yiv7223010016last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv7223010016 dd.yiv7223010016last p span.yiv7223010016yshortcuts {margin-right:0;}#yiv7223010016 div.yiv7223010016attach-table div div a {text-decoration:none;}#yiv7223010016 div.yiv7223010016attach-table {width:400px;}#yiv7223010016 div.yiv7223010016file-title a, #yiv7223010016 div.yiv7223010016file-title a:active, #yiv7223010016 div.yiv7223010016file-title a:hover, #yiv7223010016 div.yiv7223010016file-title a:visited {text-decoration:none;}#yiv7223010016 div.yiv7223010016photo-title a, #yiv7223010016 div.yiv7223010016photo-title a:active, #yiv7223010016 div.yiv7223010016photo-title a:hover, #yiv7223010016 div.yiv7223010016photo-title a:visited {text-decoration:none;}#yiv7223010016 div#yiv7223010016ygrp-mlmsg #yiv7223010016ygrp-msg p a span.yiv7223010016yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv7223010016 .yiv7223010016green {color:#628c2a;}#yiv7223010016 .yiv7223010016MsoNormal {margin:0 0 0 0;}#yiv7223010016 o {font-size:0;}#yiv7223010016 #yiv7223010016photos div {float:left;width:72px;}#yiv7223010016 #yiv7223010016photos div div {border:1px solid #666666;height:62px;overflow:hidden;width:62px;}#yiv7223010016 #yiv7223010016photos div label {color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv7223010016 #yiv7223010016reco-category {font-size:77%;}#yiv7223010016 #yiv7223010016reco-desc {font-size:77%;}#yiv7223010016 .yiv7223010016replbq {margin:4px;}#yiv7223010016 #yiv7223010016ygrp-actbar div a:first-child {margin-right:2px;padding-right:5px;}#yiv7223010016 #yiv7223010016ygrp-mlmsg {font-size:13px;font-family:Arial, helvetica, clean, sans-serif;}#yiv7223010016 #yiv7223010016ygrp-mlmsg table {font-size:inherit;font:100%;}#yiv7223010016 #yiv7223010016ygrp-mlmsg select, #yiv7223010016 input, #yiv7223010016 textarea {font:99% Arial, Helvetica, clean, sans-serif;}#yiv7223010016 #yiv7223010016ygrp-mlmsg pre, #yiv7223010016 code {font:115% monospace;}#yiv7223010016 #yiv7223010016ygrp-mlmsg * {line-height:1.22em;}#yiv7223010016 #yiv7223010016ygrp-mlmsg #yiv7223010016logo {padding-bottom:10px;}#yiv7223010016 #yiv7223010016ygrp-msg p a {font-family:Verdana;}#yiv7223010016 #yiv7223010016ygrp-msg p#yiv7223010016attach-count span {color:#1E66AE;font-weight:700;}#yiv7223010016 #yiv7223010016ygrp-reco #yiv7223010016reco-head {color:#ff7900;font-weight:700;}#yiv7223010016 #yiv7223010016ygrp-reco {margin-bottom:20px;padding:0px;}#yiv7223010016 #yiv7223010016ygrp-sponsor #yiv7223010016ov li a {font-size:130%;text-decoration:none;}#yiv7223010016 #yiv7223010016ygrp-sponsor #yiv7223010016ov li {font-size:77%;list-style-type:square;padding:6px 0;}#yiv7223010016 #yiv7223010016ygrp-sponsor #yiv7223010016ov ul {margin:0;padding:0 0 0 8px;}#yiv7223010016 #yiv7223010016ygrp-text {font-family:Georgia;}#yiv7223010016 #yiv7223010016ygrp-text p {margin:0 0 1em 0;}#yiv7223010016 #yiv7223010016ygrp-text tt {font-size:120%;}#yiv7223010016 #yiv7223010016ygrp-vital ul li:last-child {border-right:none !important;}#yiv7223010016

   
Loading...