Wednesday, July 22, 2009

Better results by compromise

By compromise, we can choose some pixels to do the reordering when the intensity reduced and others will not change the order during the whole process. It means we try to avoid the clumping where there is a brighter area since we think the clumping at the edges (assumed there are darkness) won't have much artefacts.

reordering when the original intensity greater than 150reordering when the original intensity greater than 100
reordering when the reduced intensity greater than 150
reordering when the reduced intensity greater than 200












Using the same order in the whole previous algorithm





Tuesday, July 21, 2009

Finally the tone is matched after dealing with the first pixel


The spiral masks are used.



Better for tone change but artefacts are too clear.

Algorithms:
1. Sort each pixels based on the brightness into a heap.
2. For each pixel grows the spiral
%% accum is the accumulation; target is the goal; counter is
%%for a long spiral over the limit
(1): initial states: accum = 0; target = 255; counter = 0;
(2): grow the spiral( for each step the real codes as follows)
%% full; stop
if(accum >= target) break;
Ii = ppTemp[v.y][v.x].GetGreyscaleValue ();

%% return the increase based on the accumulation function
out = accumulate(I0,Ii, m_ppDoneMap[v.y][v.x]);
accum = accum + out;%% accumulation
%% update the original image and the done map
in = min(255,Ii + out);
ppTemp[v.y][v.x] = COLOR(in, in, in);
m_ppDoneMap[v.y][v.x] =0;// flag for used pixels
%% the error at the last pixel
if (accum > target)
{
in = Ii-(accum-out-target);%% too much
ppTemp[v.y][v.x] = COLOR(in,in, in);
}
%% counter for the length of the spiral
counter++;
%% too long and cut it out; might have a problem
if(counter>spiralmask.size ()) break;
---------------------------------------------
%% the accumulation function
int accumulation(...)
{
Ti = 80;
if(255-Ii less than Ti)
in = 255 - Ii;
else
in = Ti;
return in;
}
---------------------------
Intensity response diagram based on the ramp image
Some results



Wednesday, July 15, 2009

Monday, July 13, 2009

I guess this is the effect we want, but still has issues.

It seems the method catches the constrast or maybe we can say it obeys the edges. But it does not follow the tone correctly.



It seems the artefacts are from the function I chosen. But right now I do not know how to avoid them.

Strange effects


Effect 1

Effect 2
The threshold is based on the accumulation and the discontinuous increase for the chosen function.

Friday, July 3, 2009

Still not good


The traditional error diffusion algorithm

Much better than our results! More smoother!! Also smoother than the results from "structure-aware halftoning" paper. But the results from the paper is clearer to show the edges.



the Floyd-Steinberg algorithm

Thursday, July 2, 2009

Several questions about halftoning


1. What kind of effects for haltoning is perfect(or for printing)?--blue-noise property? What's an interesting halftoning?
2. Density means? Density and harmonity?
3. The constrast for halftoning?
4. Maintain the original structure
5. The pattern creation(means new pattern): how to deal with the original structure or pattern?
6. What do you think about the above image?

Another more related paper: digital halftoning with space filling curves by Velho and Gomes; and some halftoning by fractal path