IntensityImage * ImageFactory::newIntensityImage(const IntensityImage &other) { IntensityImage * image = ImageFactory::newIntensityImage(other.getWidth(), other.getHeight()); int size = other.getHeight() * other.getWidth(); for (int i = 0; i < size; i++) { image->setPixel(i, other.getPixel(i)); } return image; }
void LuminosityAlgorithm::doAlgorithm(const RGBImage& input, IntensityImage& output) { // Check image size if (input.getWidth() != output.getWidth() || input.getHeight() != output.getHeight()) { output.set(input.getWidth(), input.getHeight()); } // Lunimosity Algorithm defined as // Gray = (Red * 0.2126 + Green * 0.7152 + Blue * 0.0722) for (int i = 0; i < input.getWidth()*input.getHeight(); i++) { RGB pixel = input.getPixel(i); output.setPixel(i, pixel.r * 0.2126 + pixel.g * 0.7152 + pixel.b * 0.0722); } }
void HereBeDragons::NoWantOfConscienceHoldItThatICall(const cv::Mat &source, IntensityImage &dst) { int type = source.type(); if (type != CV_8UC1) { // throw std::exception("OpenCV Mat source image not of type CV_8UC1!"); throw std::exception{}; } dst.set(source.cols, source.rows); for (int x = 0; x < source.cols; x++) { for (int y = 0; y < source.rows; y++) { dst.setPixel(x, y, source.at<uchar>(y, x)); } } }