Nokia Imaging SDK Gotchas – Artifacts in Filters

Recently we switched over our filter framework to the fantastic Nokia imaging SDK. 

We wrote our own framework back in the days of Windows Phone 7.

But despite tedious optimizations it didn’t offer the performance that we wished because it was written in a managed environment.

Nokia SDK to the rescue!

The transition to the SDK went smoothly, the API is simple and clean, yet very powerful.

After having implemented a number of effects, I discovered that some filters didn’t work as expected.

For example the cartoon filter and blur filter showed weird artifacts in form of horizontal lines in the output image.

Turns out the solution was simple: All filters where an output pixel depends on a region of input pixels need an output image that is different from the input image.

If you think about it, it’s kind of obvious. Although it took me quite a bit to figure out, as the other single pixel based filters were working fine.

So long story short: Use 2 different images for output and input of the filters.