


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!"






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 <= x1  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;
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?





This is a partiallyordered set. One line can come before another, or they may be incomparable. You can choose whatever heuristic that makes sense for your application for ordering them.
"Microsoft  Adding unnecessary complexity to your work since 1987!"





I have a set of parallelish lines (they may not be parallel, but they don't cross) that define an area. On each line, I calculate two points (lets say P1 and P2) which define an operating region. With an ordered set of lines, I know for line 1 (L1), the polygon showing the operating region starts at P1 and ends at P2. The next point in the polygon is L2P1, whereas the (n1)th point is L2P2 (where n is the number of lines I have).
My problem is:
1) Lines may be drawn either way, so P1 and P2 in two 'adjacent' lines may not be on the same side.
2) Lines may not be in order.
So, knowing the number of lines, and which points belong to the same line (i.e., I know which points are paired),
can I calculate the order of the lines / points, so that I can draw my polygon?
It seems like a hulling problem, but is there a way to say 'all these points are on the hull boundary'?
Wouldn't that lead to multiple solutions for certain sets of points?





Actually  is this a travelling salesman problem?





Can you show some diagrams of the possible scenarios? I'm not sure I have it entirely clear in my head.
If the hull is known to be convex, and we're talking 2D, I would take an approach like:
 find a point inside the shape (the average location of all the control points should do)
 go around the control points in order of angle from that central point
I don't think the pairing of points on the same line matters, once you have the collection of points.





This is a very simple example, but I want to draw the polygon defined by the black lines and the green and red spots.
This[^]





Okay, so if you can find that it's the green and red lines you want, my solution will work for creating the polygon. (The average point will be somewhere in the middle and then G1, R1, R2, G2 are in order of angle from it.)
To find which lines you want, order them based on how far along the 'black axis' they cross the black lines, i.e. by r.b where r is any point on a line and b is the direction vector of the black lines.
(Sorry for not responding for a while, I forgot about this forum.)





Thanks  that just leaves me with the ordering problem (see my other post). Since my lines may have been draw either way around, and in a "random" order...ordering them is not as easy as it sounds. I've come up with a method that will work most of the time (I think) (Here[^]).
I think throwing the points at a Travelling Salesman algorithm might be less complicated.





Kyudos wrote: I think throwing the points at a Travelling Salesman algorithm might be less complicated.
No need for that. When the lines are almost parallel, and don't cross each other, you can define some kind of distance, calculate that, and order them all based on it.
Example: take one of the lines, calculate its equation in the form f(x,y)=a*x+b*y+c.
All points on the line itself have f(x,y)=0 by definition.
The green/red points have a nonzero f value, take one of them, or the average, and use that as a distance.





I think that is along the lines of what I described in my Physics Forum post (see above). But a TSP solution will generically work for both lines and polylines with minimum complication.





I answered that as well in the last paragraph . I'm assuming that the black lines are in some known direction, otherwise you have to pick a direction vector ... but just choosing the perpendicular to any one of the lines should work fine. It doesn't actually matter whether the order ends up as ABCD or DCBA, and picking a perpendicular will guarantee one of those will be the case if the lines are close to parallel. (The average perpendicular for all the lines will be better but probably unnecessary.)





I have to write a program in java for wordwrap with minimum regard...
for example if we have "aaa bb cc ddddd" and want to wrap it in lines with this method the final form should be like this :
 Line width: 6
aaa Remaining space: 3 (cost = 3 squared = 9)
bb cc Remaining space: 1 (cost = 1 squared = 1)
ddddd Remaining space: 1 (cost = 1 squared = 1)
attention that we don't know number of lines...I don't understand the algorithm which is in wikipedia ,in this link :
http://en.wikipedia.org/wiki/Word_wrap[^]
but unfortunately I still have problem with understanding the algorithm...can some one explain it with example for me ?





You have already asked this question in Q&A. Read the guidelines, and ask your question ONCE if you don't want to annoy people who might otherwise have an answer for you.
Software rusts. Simon Stephenson, ca 1994.





Hi...I wanna write a program in java that can count the number of balanced matrix of N*N...the only way that I know is to consider all the possible assginments for the matrix and then choose the answers...I searched the topic and found something about it in wikipedia...it solved the problem with dynamic programming but unfortunately I don't understand exactly the algorithm...can anyone help and explain completely with example for me what to do ?
this is the link that I found :
http:





Dynamic programming can be used when optimal solutions are composed of optimal subsolutions. You start with the smallest optimal subsolutions, and use them to build up optimal solutions to larger subproblems.
This typically runs in polynomial time, which is faster than trying all possible solutions, which would take exponential time.
"Microsoft  Adding unnecessary complexity to your work since 1987!"





plz can anyone tell me how to store the data in text file using file handling in java...
plx Mail me comprehensive program of file handling, explain with comment and few of explanation...
asadali.nazir@gmail.com





See here[^] for all the information you need.
Unrequited desire is character building. OriginalGriff
I'm sitting here giving you a standing ovation  Len Goodman





Unless you want a lot of spam in your inbox, please do not put your email address in a message posted publicly.
"Science is facts; just as houses are made of stones: so, is science made of facts. But, a pile of stones is not a house, and a collection of facts is not, necessarily, science." Henri Poincare





This article: Graphical solution to eight queen problem[^] mentions "the old algorithm from HorowitzSahani". Does anyone here have more information on this? I haven't found anything online, I'm thinking it's only in a text book.






Ah, good, thanks. That first one still just shows the snippet* posted in the article I mentioned, I was hoping to see more on the algorithm.
* And that's what I came up with on my own last week.
Also, I note in the second one that he's using recursion  my algorithm is nonrecursive.
P.S. I just ordered a used copy of that book from Amazon.
modified 1Jan12 10:27am.





I would be interested in seeing your algo to see how it stacks up with some of my algos for removing recursion.
Dave.





Once I've seen what's in the book I'll decide whether or not mine is unique enough to form an article.





The book arrove today. My code is very much like the code they show on page 338 with two main differences:
0) They have the test in a separate function and therefore a global array.
(Which also has a needless call to ABS .)
1) They have an extra while loop.
public static System.Collections.Generic.IEnumerable<System.Collections.Generic.IList<int>>
nQueens
(
int HowMany
)
{
int[] board = new int [ HowMany ] ;
int row = 0 ;
board [ row ] = 1 ;
while ( row >= 0 )
{
board [ row ]++ ;
if ( board [ row ] == HowMany )
{
row ;
}
else
{
int i ;
for ( i = 0 ; i < row ; i++ )
{
int diff = board [ row ]  board [ i ] ;
if ( ( diff == 0 )  ( System.Math.Abs ( diff ) == ( row  i ) ) )
{
break ;
}
}
if ( i == row )
{
row++ ;
if ( row == HowMany )
{
yield return ( System.Array.AsReadOnly ( board ) ) ;
row ;
}
else
{
board [ row ] = 1 ;
}
}
}
}
yield break ;
}





Thank you for your reply. I gather that this is your algorithms since it only has one "while" loop. It may take me a while to digest this, I am primarily a MASM developer, but come here for algorithms.
Do you have any guesses as to how large "HowMany" can be and not run out of memory, i.e., what would be the maximum n for nQueens with this algo?
Dave. (Another Desert Rat from West Phoenix)



