
There is a nearinfinite number of image features you could extract. Which features you choose to extract should depend on your goal(s).
E.g. if your goal is facial recognition, you'd extract features related to heads, eyes, etc... If your goal is part inspection, you'd extract features like lines with an edgedetection algorithm.
Your problem seems to stem from the lack of goals; you appear to be doing feature extraction as an end in itself.
There are a variety of edgedetection algorithms, some of which are easy to implement. One of the easiest is to shift the image one pixel then subtract it from the original image. Then set all pixels in the difference image below a threshold to zero.
This zeroes out solid regions, leaving you with just the edges. After edge detection, you can take the edges and use them to identify higherlevel features, based on their positions.
If I were you, I wouldn't start learning a new technology one week before a deadline; that's asking for trouble. Just focus on what you can do with straightforward programming.
"Microsoft  Adding unnecessary complexity to your work since 1987!"





I will assume color processing is what you want... i can advise that you start with color opponent process as occurs in the retinal ganglion cells see http://en.wikipedia.org/wiki/Opponent_process[^]
opponent process results in Red vs Green, Blue vs Yellow and Black vs White channels, if you are wondering why go through this process?
Well color sensor response overlaps (even the photo receptors in animals & humans) , and it is biologically proven to work.
but only Red vs Green and Blue vs Yellow are what is needed for color processing. you can obtain a two dimensional vector at any position (one sample per channel) normalize the vector to unity magnitude and store it with the associated color (in an indexing structure like the Kd tree see http://en.wikipedia.org/wiki/Kd_tree[^]) as a prototype. So get such descriptors for all colors. then at run time repeat the whole process except that you run the indexing structure and label each pixel with a given color based on it's closest prototype in the indexing structure. Then you can do some statistics such as create a histogram to count the frequency of occurrence of each color and normalize the histogram, and that will be a descriptor vector for an image hence the resulting color descriptor can be used to retrieve images or compute their similarity score.
or and 1 week, where have you been?
And as for feature extraction, there are low,intermediate and high level features, most of computer vision uses either low or intermediate level features there are so many algorithms for that such as SIFT (Scale Invariant Feature Transform) see http://en.wikipedia.org/wiki/Scaleinvariant_feature_transform[^] and http://www.cs.ubc.ca/~lowe/papers/ijcv04.pdf[^]





The problem is:
given a set of numbers:
xi > d and
xi+1 > xi and
xi+1  xi > d, i=1..N and
"distance" d
find such the greatest number v which satisfies the condition for each xid/2 and xi+d/2 to be entirely included between kv and (k+1)v where k is integer > 0.
I found an empiric algorithm first to be evaluated manually in spreadsheet and then I coded it but I am not sure whether it is reliable without some theory.
modified 16Mar12 15:41pm.





The problem is not completely described, is it?
I guess "d" is greater than 0. Any further conditions for d?
The minimum value for xid/2 is Min(xi)d/2. When d is greater than 2 times the smallest x value, that expression becomes negativ, and there is no v fulfilling the conditions.





Right. I should write: xi > d.
I know that it is not solvable in any case of d and set of xi. It would be interesting to find limitations when it is.





Are x, d, and v also integers?





That doesn't make much sense to me. As the set xi is an ordered set, all that matters are the values of the smallest and largest of the xi numbers.
So it boils down to:
given natural numbers d, min, and max, where
d < min
min + d < max
find values k and v such that
k*v < min  d/2
(k+1)*v > max + d/2
which can't be hard to solve, by picking any v that satisfies
v > max  min + d
then finding k through division.
So I'd guess you want something entirely different.





Let me show this on the example:
You're given
x1=22
x2=50
x3=100
and d=10
We can find v=15 which satisfies this:
we can divide the range <0,100(or at least)> into equal intervals of length 15 because our "10" fits in:
1*15 and 2*15 with the middle in 22 i.e. <17,27>
3*15 and 4*15 with the middle in 50 i.e. <45,55>
6*15 and 7*15 with the middle in 100 i.e. <95,105>
I hope it's clearer now and excuse me if the latter was not.





it now sounds like you are accepting (or even requiring) a different k value for each new x sample...
if so, I don't know an algorithm that does it right away, however it reminds me of hash function optimisation, maybe a little Google could help you.





That means d <= v <= x<small>1</small>  d/2 , v must not be a divider of any xi.
There is no solution when you set x2=49 or x3=99. Are there some more constraints on the series?





So you know the following:
1. d ≤ v ≤ x_{1}  ^{d}/_{2}
2. ∀x_{n}, ^{d}/_{2} ≤ x_{n} % v ≤ v  ^{d}/_{2}
My dumb algorithm in C# would be (untested):
int FindV(List<int> x, int d) {
int halfD = (d + 1) / 2;
// Handle odd d by rounding up to the next even
d = 2 * halfD;
for (int v = x[0]  halfD; v >= d; v) {
int upper = v  halfD;
bool solved = true;
foreach (int xn in x) {
int mod = xn % v;
if (mod < halfD  upper < mod) {
solved = false;
break;
}
}
if (solved) return v;
}
return 1;
}
Sounds like somebody's got a case of the Mondays
Jeff





can any developer help me





Post an actual question, this is too vague... look to use something like RTP for audio/video network transfers, but other than that, ask more specific questions.





i need some audio watermarking algorithm codes such as spread spectrum, cepstrum , chirp , echo hiding.
who can help me?and how can i get this codes?
with the best regardes.





Try here:
Codez[^]
The difficult we do right away...
...the impossible takes slightly longer.





how can i get audio watermarking attacks codes?





Can anyone explain to me how exactly works the Super2xSal, SuperEagle or hq2x algorthm for scaling images? I need the exact pattern written in pseudo code. For example, the Scale 2X algorithm uses the following pattern:
A B C
D E F
G H I
E0 E1
E2 E3
if (B != H && D != F) {
E0 = D == B ? D : E;
E1 = B == F ? F : E;
E2 = D == H ? D : E;
E3 = H == F ? F : E;
} else {
E0 = E;
E1 = E;
E2 = E;
E3 = E;
}
Thanks for any useful answer.





Wiki has some discussion on these and other similar algorithms: Super2xSaI[^]





I'm studying how to convert between image file formats in lowlevel programming (without using converter libraries), to do this way, I have to know the file format structure but it seems not such easy, because of complex compression algorithms used in graphics files...
Another problem is how to convert from pixel to pixel such as if an image file with each pixel encoded by 24 bits is converted to another image file with each pixel encoded by 8 bits, that means we have to map 2^24 color palette to a 2^8 color palette, we surely have to choose 2^8 colors from 2^24 colors to put in the new color table and if so how we do that? Which colors we choose?
Could anyone here who have worked on the same projects please tell me stepbystep guide on how to convert between these image file formats? I don't need detailed code, I need a guide to do, if possible your codes will be very helpful to me but if not, that'll be fine. Plus If you have any documents on image file formats, could you please post some download link here to help me, I am very in need of such documents.
Thank you very much in advance and anyway!





To get the documentation use your favorite search engine with "<image type> file format specification". You should get links to the official specifications on the first result page(s).





"...we have to map 2^24 color palette to a 2^8 color palette, we surely have to choose 2^8 colors from 2^24 colors to put in the new color table and if so how we do that? Which colors we choose?"
One solution is error diffusion with the FloydSteinberg Algorithm (can't find a good reference to link to). The basic idea is when you replace a pixel with one from a smaller palette, you will have a small amount of error. This error is propagated to the right and down, which allows a close approximation of the original image with the new smaller palette.
This allows, for example, a decent representation of grayscale portraits with only black and white pixels, as you see in the Wall Street Journal.
"Microsoft  Adding unnecessary complexity to your work since 1987!"






Hi,
In a C++ software projetc I'm working with they gets
number of bytes = ((number of bits)* 7) / 8
Why isn't number of bytes = (number of bits) / 8
Thanks!





marca292 wrote: number of bytes = ((number of bits)* 7) / 8
It should really be (note the plus sign) number of bytes = ((number of bits) + 7) / 8 to round up any odd bits to a byte boundary.
Cheers,
Peter
Software rusts. Simon Stephenson, ca 1994.





Is there a generic algorithm for ordering noncrossing (poly) lines? The "order" is hard to define, but any child could do it if they saw the lines drawn on paper...from the first line, to the last line, the inside line to the outside line etc. The order might endup being L>R or T>B or somewhere in between.
I'm thinking you might be able to work with the distance to the line end points from the centroid of all the lines...or something like that.
Do the end points with the "extremeest" coordinates, definitely locate the "first" and "last" lines?
Anyone?



