[Home]
[Edit this page]
[Recent Changes]
[Special Pages]
[Help]
CppVclHistogramEqualization
[Edit this page] [Page history] [What links here] [Discuss this topic] [Printer Friendly]
CppVclHistogramEqualization
(C++ VCL Graphics) Histogram equalization
Technique to maximize contrast of an image.//---------------------------------------------------------------------------//--------------------------------------------------------------------------- void HistogramEqualize(const TImage * const source, TImage * const target) { assert(source!=0); assert(target!=0); assert(source->Width == target->Width); assert(source->Height == target->Height); assert(source->AutoSize==true); assert(target->AutoSize==true); const int width = source->Width; const int height = source->Height; const int surface = width * height; const int nGreyValues = 256; //There are 256 different pixel intensities const std::vector<int> histogram = GetHistogram(source); assert(nGreyValues==static_cast<int>(histogram.size())); const std::vector<int> cumulativeHistogram = GetCumulativeHistogram(histogram); assert(nGreyValues==static_cast<int>(cumulativeHistogram.size())); //Works, but anybody knows how to use std::for_each or std::transform for this? std::vector<int> rescaledHistogram(nGreyValues,0); for (int i=0; i<nGreyValues; ++i) { rescaledHistogram[i] = static_cast<double>(nGreyValues)
- include <vector>
- include <cassert>
- static_cast<double>(cumulativeHistogram[i])
'Histogram equalization' links
- ?C++
- C++ OpenCV
- General
Code links
[Edit this page] [Page history] [What links here] [Discuss this topic] [Printer Friendly]
