~ubuntu-branches/ubuntu/saucy/digikam/saucy

« back to all changes in this revision

Viewing changes to libs/dimg/filters/nr/nrfilter.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Alessandro Ghersi
  • Date: 2010-06-18 21:58:46 UTC
  • mfrom: (1.2.29 upstream) (3.2.13 sid)
  • Revision ID: james.westby@ubuntu.com-20100618215846-c95bk5aoysmu786d
Tags: 2:1.3.0-0ubuntu1
* Merge with Debian unstable, remaining changes:
  - Export .pot name and copy to plugins in debian/rules
  - Enable Nepomuk support in Digikam
    - Add shared-desktop-ontologies to build depends
* New upstream release:
  - Remove digikam-1.2.0-kde232628.patch fixed by upstream
  - Add mysql-server-5.1 to buil-depends

Show diffs side-by-side

added added

removed removed

Lines of Context:
91
91
 
92
92
    int j = 0;
93
93
 
94
 
    for (int y = 0; !m_cancel && (y < height); y++)
 
94
    for (int y = 0; runningFlag() && (y < height); y++)
95
95
    {
96
 
        for (int x = 0; !m_cancel && (x < width); x++)
 
96
        for (int x = 0; runningFlag() && (x < width); x++)
97
97
        {
98
98
            col           = m_orgImage.getPixelColor(x, y);
99
99
            d->fimg[0][j] = col.red()   / clip;
107
107
 
108
108
    // do colour model conversion sRGB[0,1] -> YCrCb.
109
109
 
110
 
    if (!m_cancel)
 
110
    if (runningFlag())
111
111
    {
112
112
        srgb2ycbcr(d->fimg, width * height);
113
113
    }
116
116
 
117
117
    // denoise the channels individually
118
118
 
119
 
    for (int c = 0; !m_cancel && (c < 3); c++)
 
119
    for (int c = 0; runningFlag() && (c < 3); c++)
120
120
    {
121
121
        d->buffer[0] = d->fimg[c];
122
122
 
132
132
 
133
133
    // Retransform the image data to sRGB[0,1].
134
134
 
135
 
    if (!m_cancel)
 
135
    if (runningFlag())
136
136
    {
137
137
        ycbcr2srgb(d->fimg, width * height);
138
138
    }
141
141
 
142
142
    // clip the values
143
143
 
144
 
    for (int c = 0; !m_cancel && (c < 3); c++)
 
144
    for (int c = 0; runningFlag() && (c < 3); c++)
145
145
    {
146
146
        for (int i = 0; i < width * height; i++)
147
147
        {
155
155
 
156
156
    j = 0;
157
157
 
158
 
    for (int y = 0; !m_cancel && (y < height); y++)
 
158
    for (int y = 0; runningFlag() && (y < height); y++)
159
159
    {
160
160
        for (int x = 0; x < width; x++)
161
161
        {
194
194
    temp  = new float[qMax(width, height)];
195
195
    hpass = 0;
196
196
 
197
 
    for (lev = 0; !m_cancel && (lev < 5); ++lev)
 
197
    for (lev = 0; runningFlag() && (lev < 5); ++lev)
198
198
    {
199
199
        lpass = ((lev & 1) + 1);
200
 
        for (row = 0; !m_cancel && (row < height); ++row)
 
200
        for (row = 0; runningFlag() && (row < height); ++row)
201
201
        {
202
202
            hatTransform(temp, fimg[hpass] + row * width, 1, width, 1 << lev);
203
203
            for (col = 0; col < width; ++col)
206
206
            }
207
207
        }
208
208
 
209
 
        for (col = 0; !m_cancel && (col < width); ++col)
 
209
        for (col = 0; runningFlag() && (col < width); ++col)
210
210
        {
211
211
            hatTransform(temp, fimg[lpass] + col, width, height, 1 << lev);
212
212
            for (row = 0; row < height; ++row)
224
224
 
225
225
        // calculate stdevs for all intensities
226
226
 
227
 
        for (i = 0; !m_cancel && (i < size); ++i)
 
227
        for (i = 0; runningFlag() && (i < size); ++i)
228
228
        {
229
229
            fimg[hpass][i] -= fimg[lpass][i];
230
230
 
266
266
 
267
267
        // do thresholding
268
268
 
269
 
        for (i = 0; !m_cancel && (i < size); ++i)
 
269
        for (i = 0; runningFlag() && (i < size); ++i)
270
270
        {
271
271
            if (fimg[lpass][i] > 0.8)
272
272
            {
303
303
        hpass = lpass;
304
304
    }
305
305
 
306
 
    for (i = 0; !m_cancel && (i < size); ++i)
 
306
    for (i = 0; runningFlag() && (i < size); ++i)
307
307
        fimg[0][i] = fimg[0][i] + fimg[lpass][i];
308
308
 
309
309
    delete [] temp;