Проблема может быть в конфигурации компилятора gcc. Вы можете скачать скомпилированный файл .whl
с https://pypi.org/project/supplychainpy/#files . Обратите внимание, что файлы *-macosx_10_6_x86_64.whl
предназначены для macosx.
Некоторый псевдокод как это масштабировал бы значения линейно от одного диапазона до другого
oldmin=-500
oldmax=1000
oldrange=oldmax-oldmin;
newmin=0
newmax=255;
newrange=newmax-newmin;
foreach(oldvalue)
{
//where in the old scale is this value (0...1)
scale=(oldvalue-oldmin)/oldrange;
//place this scale in the new range
newvalue=(newrange*scale)+newmin
}
Ваш вопрос не очень ясен, таким образом, я собираюсь предположить, что Вы делаете некоторую обработку изображений и результаты, которые Вы получаете, значения от-500 до 1 000, и теперь необходимо сохранить цвет в файл, где каждое значение должно быть между 0 и 255.
Как Вы делаете это действительно очень зависит в приложении, что является действительно значением результатов и что точно Вы хотите сделать. Две основных опции:
Линейная нормализация - линейно может Ваше минимальное значение к 0 и Ваше максимальное значение к 255. Конечно, необходимо будет сначала найти минимум и максимум. Вы делаете:
v = (origv - min)/(max - min) * 255.0
То, что это делает, является первой картой значения к [0,1]
и затем расширьте их назад к [0,255]
.
Третья опция к смешиванию и подгонке между этими двумя опциями. Ваше приложение могло бы потребовать, чтобы Вы рассматривали отрицательные величины как ненужные значения и зафиксировали их к 0 и положительные значения для линейного отображения на [0,255]
.
Сначала сделайте все это положительным. Если минимум-500, затем добавляют 500 ко всем значениям. Затем минимум был бы 0, и максимум будет 1500.
Затем это - просто правило три, и у Вас есть он:
[value in 0,255] = 255*(Pixel/1500)
Некоторый псевдо код может помочь:
foreach( pixel_value in pixel_values): # between -500 and 1000
position = (pixel_value + 500) / 1500 # gives you a 0 to 1 decimal
new_value = int(postion * 255) # or instead of casting, you could round it off
Это - код Python между прочим.
Создайте две переменные, MinInputValue
и MaxInputValue
. Инициализировать MinInputValue
к очень большому положительному числу (выше, чем самое большое пиксельное значение Вы когда-либо ожидаете видеть), и MaxInputValue
к очень большому отрицательному числу (ниже, чем самое низкое пиксельное значение Вы когда-либо ожидаете видеть).
Цикл по каждому пикселю в изображении. Для каждого пикселя, если пиксельное значение PixelValue
ниже, чем MinInputValue
, набор MinInputValue
кому: PixelValue
. Если пиксельное значение выше, чем MaxInputValue
, набор MaxInputValue
кому: PixelValue
.
Создайте новую переменную, InputValueRange
, и набор это к MaxInputValue - MinInputValue
.
После того как это сделано, цикл по каждому пикселю в изображении снова. Для каждого пикселя PixelValue
, вычислите значение выходного пикселя как 255.0 * (PixelValue - MinInputValue) / InputValueRange
. Можно присвоить это новое значение назад оригиналу PixelValue
, или можно установить соответствующий пиксель в выходном изображении того же размера.