I think there are two main issues here. The first is how to distinguish between "texture" and "the boundary of an object". There's no absolutely reliable way to do this (when is an object an object and not a surface marking?) but the general way to tackle this with fairly straightforward methods is to use the idea of scale, implemented via image smoothing. This gets extended to the powerful concept of scale-space, which gets applied in lots of ways from resolution pyramids to SIFT features, so it's well worth getting to grips with.
Here's some code to look at, as a simple implementation of what you asked about. It identifies the position of maximum left-right contrast at a scale determined by the value of sigma - try changing this to see what happens. The code can be modified to find more large-contrast locations if necessary, and the change to horizontal rather vertical edges is trivial.
im = imread('pout.tif');
sigma = 8;
hmasksize = ceil(2.6 * sigma);
masksize = 2*hmasksize + 1;
mask = fspecial('gauss', masksize, sigma);
imsmooth = conv2(double(im), mask, 'valid');
hordiffs = imsmooth(:, 1:end-1) - imsmooth(:, 2:end);
[colmxs, rs] = max(abs(hordiffs),,1);
[mx, c] = max(colmxs);
r = rs(c);
c = c + hmasksize;
r = r + hmasksize;
plot(c, r, 'r^');
The second issue is how to handle colour images. The two main possibilities are (a) to form a single intensity image, and then proceed as above, or (b) to independently find edges for the different colour planes, and then somehow combine them.
To do (a), assuming you're starting from an RGB image (converted to double data type) you could combine the colours something like this:
im = k1*rgb(:,:,1) + k2*rgb(:,:,2) + k3*rgb(:,:,3);
where k1, k2 and k3 are constants to be chosen by experiment or using machine learning. These will depend on the kind of colour contrasts you want to find - for example if the blue component is particularly important, k3 would be larger than the others.
For approach (b), you could apply edge detection separately to the r, g and b components (or to the h, s and v components, or whatever you want to use) and then see which result has the strongest edges.
The are more complex variants on all of this - to say more would need a little research project on the particular data you're working with.