|
There are many possible approaches, and it's possible there's no solution for a given set of bitmaps.
The problem is in partitioning the bitmaps into the four sets, which suggests a kind of cluster analysis may be helpful.
1. Make a 100 x 100 integer array with rows and columns representing the bitmaps.
2. For row r, and column c, set the value of the cell to the number of rows bitmap r has in common with bitmap c.
3. Go through the array in descending cell order, i.e. start with the highest cell value, and link the two bitmaps corresponding to this cell, to form a cluster. Note that if both bitmaps are already in clusters, this operation will combine the clusters into a bigger cluster. But DON'T do the combination if the total number of unique rows from the two clusters is greater than 128 (since it wouldn't fit into one set.)
4. When you can no longer make any more clusters, assign the four largest clusters to the four sets.
5. Assign the remaining bitmaps to the four sets, picking the set that already has the most rows in common with the bitmap being assigned.
This will cluster the bitmaps that have the most rows in common, making efficient use of your four sets. While not optimal, this will give you a decent solution.
|
|
|
|
|
I'll have to give that a try. There are a few similar problems I have, with somewhat different parameters; the approach may work well if there are 100 groups of things, but may not work so well in a variation with 1,000 groups. Even there, though, it might not be too totally horrible if it's possible to quickly identify how many items are shared by two groups (doing 1,000,000 such match-ups might not be too horrible if they took a microsecond each, but would be annoying if they took a millisecond).
I'd been debating whether it would be better to grow clusters separately, or whether it would be better to pick an item to start a cluster, and then grow that cluster until things don't fit any more, then start another cluster, etc. I suppose the best approach may depend upon the exact data to be processed, but the data won't exist until after the compressor is done.
Basically, I'm trying to compress some level-design data for use on a very old video game system (Atari 2600, running off a 1.19MHz 6502 with 128 bytes of RAM and 8x4k banks of ROM). The goal will be to take a level design and process it into the format necessary for the game. I can't know what sorts of levels will be designed until I get some idea of what's likely to fit. It would be possible to accommodate 20 rooms of arbitrary data, but many rooms are going to have rows in common, so in practice it should be able to accommodate a lot more than 20 rooms. I don't know how much more, however.
|
|
|
|
|
Can anyone plz help us with how to recognise the characters on a license plate of a vehicle in c#.
Is there any algorithm to recognise characters? the license plates have printed letters on them and are written in English.
|
|
|
|
|
This problem has been solved by a variety of methods over the years. The first step is isolating the individual characters in the image. Many approaches then divide a character into a grid, and average the level in each grid cell. At this point, I've seen three approaches:
1. Input the cell values to a neural net to train it to recognize the characters,
2. Heuristically come up with rules that differentiate the characters, and
3. Use the averages and standard deviations of the rows and columns with discriminant analysis (http://statsoft.nl/uk/textbook/stdiscan.html[^]).
You can probably find source code somewhere on the web to do this.
|
|
|
|
|
thanks a lot for ur help.....
i know theoretically some how to implement it but i cant the hang of how to start of with the code my characters are not getting segmented properly
|
|
|
|
|
actually segmenting the characters worked only for one image , i applied thinning to individual character to get the skeleton but then i dunno how to proceed with recognition ...
plz help if u can
|
|
|
|
|
Well, you can trace vertical lines in the bitmap, and see if they intersect characters. When you find a vertical line that doesn't intersect a character, it's in a boundry between two characters. You can then do a binary search to find the X coordinate where it changes from character to boundary.
|
|
|
|
|
The basic steps will be something like:
1. Locate and extract the license plate within the image (not always easy, especially if the vehicle is moving)
2. Clean and enhance the license plate image (de-skew, de-noise, improve contrast, etc.)
3. Isolate individual glyphs (characters)
4. Extract informative features from characters
5. Recognize individual characters
Step 5 could be performed any number of ways: neural network, discriminant analysis, k-nearest neighbors, etc.
-Will Dwinnell
Data Mining in MATLAB
|
|
|
|
|
Please help me to write a simulator program for Pre fetching global variables using the sieve concept for the Cell BE Processor.
Or give me the working code to simulate the same.
Arun
|
|
|
|
|
Please deposit £10,000 in my company's bank account and we'll provide the code. Hell, we'll even throw some support in for you. Oh wait - you did realise this isn't rentacoder didn't you?
"WPF has many lovers. It's a veritable porn star!" - Josh Smith As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.
My blog | My articles | MoXAML PowerToys
|
|
|
|
|
Hi,
I need to calculate the width and height of a child window in a mdi setup.
Now i have got the area of the window, say 40000 pixels, and i know that the width is size N, and that the height is (0.75 x N), the 0.75 is the ratio of the windows height, which will always be calculated.
I need to do this in C#, but any code or help could be translated into c# if you know how to calcualte this in any other language.
Please feel free to ask me to expalin it better.
Cheers
Cloughy
|
|
|
|
|
If you know the area, width and height, I'm not sure I understand what the problem is? Are you trying to fix an aspect ratio?
|
|
|
|
|
Cloughy wrote: ... in any other language
We aim to please:
Als de hoogte driekwart is van de breedte, vermenigvuldig dan de oppervlakte met 4/3 en trek de vierkantswortel, dit geeft de breedte.
Luc Pattyn [Forum Guidelines] [My Articles]
- before you ask a question here, search CodeProject, then Google
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get
- use the code block button (PRE tags) to preserve formatting when showing multi-line code snippets
|
|
|
|
|
Sorry, I only speak English.
|
|
|
|
|
Yusuf
|
|
|
|
|
@Zep
I know that N is the width and the height is (0.75 x N). But i dont know the value of N.
I only know the area and the height ratio.
Cheers
Cloughy
|
|
|
|
|
So what you are saying is solving 0.75*N*N = known_area for N is a problem?
Did you consider dividing both sides by 0.75?
Luc Pattyn [Forum Guidelines] [My Articles]
- before you ask a question here, search CodeProject, then Google
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get
- use the code block button (PRE tags) to preserve formatting when showing multi-line code snippets
|
|
|
|
|
yes N is a problem. Just to clarify, N*(0.75*N)=Known_area.
Cheers
Cloughy
|
|
|
|
|
Multiply out the brackets:
0.75*N^2 = A
0.75N^2 = A
Change subject:
N^2 = A/(3/4)
N^2 = (4/3)A
N^2 = 1.33A
N = (square root of)1.33A
Substitute:
A = 40000
1.33A = 53200
N = square root of 53200
N = 230.651252
Perhaps something like that?
modified on Sunday, March 8, 2009 7:40 AM
|
|
|
|
|
Thanks for the input, but no.
Once i get the width(N) and the height(0.75*N). If i multiply H x W then i would still get 40000 for my area.
What i really need is a squared root function, but more like a Rectangle root.
The most important factor, is N.
So if my area is 480000, then width(N) = 800 and the height(0.75*N)= 600.
So my window would need to be set at 800x600. BTW area is never constant. I always get the ClientArea size of the mdi control.
Cheers
Cloughy
|
|
|
|
|
Cloughy wrote: but more like a Rectangle root.
What is that
See my post below for an equation
Yusuf
|
|
|
|
|
Yusuf wrote: What is that
Oh didn't you notice, analogous to square roots, they recently introduced rectangular, circular, and diamond roots to determine the size of the corresponding shapes when given the area.
Luc Pattyn [Forum Guidelines] [My Articles]
- before you ask a question here, search CodeProject, then Google
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get
- use the code block button (PRE tags) to preserve formatting when showing multi-line code snippets
|
|
|
|
|
oh, my bad.
Yusuf
|
|
|
|
|
Welcome in the CP's Memorable Quotes list [^].
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Don't forget - 25.8069758. That's the root of all evil.
"WPF has many lovers. It's a veritable porn star!" - Josh Smith As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.
My blog | My articles | MoXAML PowerToys
|
|
|
|