Fix stack size problem on MacOS
This commit is contained in:
+5
-3
@@ -131,7 +131,9 @@ void calcStats(const T *data, size_t n, size_t w, RawImage::Stats &stats)
|
|||||||
T max[4] = {std::numeric_limits<T>::min(), std::numeric_limits<T>::min(), std::numeric_limits<T>::min(), std::numeric_limits<T>::min()};
|
T max[4] = {std::numeric_limits<T>::min(), std::numeric_limits<T>::min(), std::numeric_limits<T>::min(), std::numeric_limits<T>::min()};
|
||||||
uint32_t histSize = 65536;
|
uint32_t histSize = 65536;
|
||||||
if constexpr(std::is_same<T, uint8_t>::value)histSize = 256;
|
if constexpr(std::is_same<T, uint8_t>::value)histSize = 256;
|
||||||
uint32_t histogram[4][65536] = {};
|
std::vector<uint32_t> histogram[4];
|
||||||
|
histogram[0].resize(histSize); histogram[1].resize(histSize); histogram[2].resize(histSize); histogram[3].resize(histSize);
|
||||||
|
|
||||||
T sat = SATURATION * std::numeric_limits<T>::max();
|
T sat = SATURATION * std::numeric_limits<T>::max();
|
||||||
if constexpr(!std::numeric_limits<T>::is_integer)sat = SATURATION;
|
if constexpr(!std::numeric_limits<T>::is_integer)sat = SATURATION;
|
||||||
uint32_t saturated[4] = {0};
|
uint32_t saturated[4] = {0};
|
||||||
@@ -150,7 +152,7 @@ void calcStats(const T *data, size_t n, size_t w, RawImage::Stats &stats)
|
|||||||
if(d > sat)saturated[x]++;
|
if(d > sat)saturated[x]++;
|
||||||
};
|
};
|
||||||
|
|
||||||
auto findMedian = [histSize](uint32_t histogram[], size_t n) -> size_t
|
auto findMedian = [histSize](std::vector<uint32_t> &histogram, size_t n) -> size_t
|
||||||
{
|
{
|
||||||
size_t histSum = 0;
|
size_t histSum = 0;
|
||||||
for(size_t o=0; o < histSize; o++)
|
for(size_t o=0; o < histSize; o++)
|
||||||
@@ -205,7 +207,7 @@ void calcStats(const T *data, size_t n, size_t w, RawImage::Stats &stats)
|
|||||||
|
|
||||||
uint32_t median = findMedian(histogram[i], na[i]);
|
uint32_t median = findMedian(histogram[i], na[i]);
|
||||||
stats.m_median[i] = median;
|
stats.m_median[i] = median;
|
||||||
uint32_t madHist[65536] = {0};
|
std::vector<uint32_t> madHist(histSize, 0);
|
||||||
madHist[0] = histogram[i][median];
|
madHist[0] = histogram[i][median];
|
||||||
for(size_t o = 1; o < histSize; o++)
|
for(size_t o = 1; o < histSize; o++)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user