Ask Your Question

Explorer_DS's profile - activity

2017-11-28 06:18:57 -0600 answered a question how do I copy specific pixels to destination mat from source mat in opencv c++?

instead of understanding the problem and getting to the solution people are down voting the question

2017-11-24 03:53:11 -0600 marked best answer how do I copy specific pixels to destination mat from source mat in opencv c++?

I want to copy specific pixels to destination mat when certain condition becomes true.in addition to that I a switching to next rows upon specific count of pixels that met condition. But it throws memory related exception as follows:

** Error in `/home/ds/eclipse-workspace/pixelenc_current/Debug/pixelenc_current.so': malloc(): memory corruption (fast): 0x0000000001593710 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x7ab54)[0x7ffff5521b54]
/lib64/libc.so.6(+0x7ddf7)[0x7ffff5524df7]
/lib64/libc.so.6(__libc_malloc+0x4c)[0x7ffff552710c]
/lib64/libstdc++.so.6(_Znwm+0x1d)[0x7ffff5de11bd]
/usr/local/lib/libopencv_highgui.so.3.3(cvNamedWindow+0xda)[0x7ffff649eeca]
/usr/local/lib/libopencv_highgui.so.3.3(_ZN2cv11namedWindowERKNS_6StringEi+0x38)[0x7ffff64957b8]
/home/ds/eclipse-workspace/pixelenc_current/Debug/pixelenc_current.so[0x409af7]
/home/ds/eclipse-workspace/pixelenc_current/Debug/pixelenc_current.so[0x408d16]
/home/ds/eclipse-workspace/pixelenc_current/Debug/pixelenc_current.so[0x405c7e]
/lib64/libc.so.6(__libc_start_main+0xf5)[0x7ffff54c8c05]
/home/ds/eclipse-workspace/pixelenc_current/Debug/pixelenc_current.so[0x401f29]

platform :centos7 +opencv 3.3

code:

unsigned char *input = (unsigned char*)(mask.data);  //mask
unsigned char *imginput = (unsigned char*)(img.data); // source data
int m=0,n=0;
for(i=hinfo[1];i<hinfo[1]+hinfo[3];i++)                 
{
if(hfcnt>=htotalpix)  // max no of pixels 
break;       
int cnt=0;
for(j=hinfo[0];j<hinfo[0]+hinfo[2];j++)
{
valmask=input[mask.cols *i  +j ] ;
if(valmask==255)  /*condition*/
{
patch1.at<Vec3b>(m,n)[0]=imginput[j*img.cols*1 + i*1 + 0];
patch1.at<Vec3b>(m,n)[1]=imginput[j*img.cols*2 + i*2 + 0];
patch1.at<Vec3b>(m,n)[2]=imginput[j*img.cols*2 + i*3 + 0];
hfcnt++;
cnt++;
}
else
continue;
/* to switch to next row in source*/
if(cnt==hinfo[2])
break; 
n++;
}
m++;
}

here are the images extracted using copyTo , in these images there is a area having black pixels which I don't want to copy. That's why I am copying specific pixels.

image description image description

Here is one of the mask I used to extract sub images. Its different one, right now I cannot produce the mask used to extract above images. image description

2017-11-24 00:47:30 -0600 received badge  Enthusiast
2017-11-23 05:43:41 -0600 commented answer how do I copy specific pixels to destination mat from source mat in opencv c++?

After copyTo I have cropped images to avoid extra processing

2017-11-23 05:40:18 -0600 edited question how do I copy specific pixels to destination mat from source mat in opencv c++?

how do I copy specific pixels to destination mat from source mat in opencv c++? I want to copy specific pixels to destin

2017-11-23 05:33:43 -0600 edited question how do I copy specific pixels to destination mat from source mat in opencv c++?

how do I copy specific pixels to destination mat from source mat in opencv c++? I want to copy specific pixels to destin

2017-11-23 05:30:57 -0600 commented answer how do I copy specific pixels to destination mat from source mat in opencv c++?

I already did that, in fact above images are extracted using polygonal mask that has white portion which marks area to b

2017-11-23 05:30:35 -0600 commented answer how do I copy specific pixels to destination mat from source mat in opencv c++?

I already did that, in fact above images are extracted using polygonal mask that has white portion which marks area to b

2017-11-23 05:24:42 -0600 commented answer how do I copy specific pixels to destination mat from source mat in opencv c++?

I already did that, the copyTo() always returns square or rectangle mat.

2017-11-23 05:15:48 -0600 edited question how do I copy specific pixels to destination mat from source mat in opencv c++?

how do I copy specific pixels to destination mat from source mat in opencv c++? I want to copy specific pixels to destin

2017-11-23 05:02:33 -0600 commented answer how do I copy specific pixels to destination mat from source mat in opencv c++?

copyTO will copy entire x +w , y+height that contains min_x, min_y, max_x, max_y coordinates of mask region. my mask is

2017-11-23 03:01:40 -0600 commented answer how do I copy specific pixels to destination mat from source mat in opencv c++?

it will copy whole square or rectangular shaped ROI , What I want to copy is specific region masked within that ROI.

2017-11-23 02:40:32 -0600 commented question how do I copy specific pixels to destination mat from source mat in opencv c++?

I tried with following code too, but same exception patch1.at<vec3b>(m,n)=img.at<vec3b>(i.j);

2017-11-23 02:34:08 -0600 commented question how do I copy specific pixels to destination mat from source mat in opencv c++?

I am trying to copy only masked pixels to another patch of same type as of source matrix which is img.

2017-11-23 02:31:35 -0600 commented question how do I copy specific pixels to destination mat from source mat in opencv c++?

I want to copy specific pixels from 3 channel matrix to another matrix. Path1 is also 3 channel matrix of same type as o

2017-11-23 01:58:22 -0600 edited question how do I copy specific pixels to destination mat from source mat in opencv c++?

how do I copy specific pixels to destination mat from source mat in opencv c++? I want to copy specific pixels to destin

2017-11-23 01:58:02 -0600 edited question how do I copy specific pixels to destination mat from source mat in opencv c++?

how do I copy specific pixels to destination mat from source mat in opencv c++? I want to copy specific pixels to destin

2017-11-23 01:34:57 -0600 asked a question how do I copy specific pixels to destination mat from source mat in opencv c++?

how do I copy specific pixels to destination mat from source mat in opencv c++? I want to copy specific pixels to destin