46 lines
947 B
C++
46 lines
947 B
C++
|
#include "bin_manual.h"
|
||
|
|
||
|
BinarizationManual::BinarizationManual(PNM* img) :
|
||
|
Transformation(img)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
BinarizationManual::BinarizationManual(PNM* img, ImageViewer* iv) :
|
||
|
Transformation(img, iv)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
PNM* BinarizationManual::transform()
|
||
|
{
|
||
|
int threshold = getParameter("threshold").toInt();
|
||
|
|
||
|
int width = image->width();
|
||
|
int height = image->height();
|
||
|
|
||
|
PNM* newImage = new PNM(width, height, QImage::Format_Mono);
|
||
|
|
||
|
// Iterate over pixels
|
||
|
for (int x=0; x < width; x++)
|
||
|
{
|
||
|
for (int y=0; y < height; y++)
|
||
|
{
|
||
|
// Get current pixel
|
||
|
QRgb pixel = image->pixel(x, y);
|
||
|
if(qGray(pixel) > threshold)
|
||
|
{
|
||
|
newImage->setPixel(x, y, Qt::color1);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
newImage->setPixel(x, y, Qt::color0);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return newImage;
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|