2013-06-12 40 views
1

我想寫一個函數,該函數可以根據以下條件獲取最多六個參數和一個輸入值數組和輸入映射輸入值:我可以使用什麼數學模型,以及如何在C++/c中實現它#

  1. 我們知道輸入值的最小值和最大值。
  2. 輸出最小值和最大值應該是一個常數值(比如-10,100)。
  3. 基於參數,它將放大小於inputmax附近的輸入值的小輸入值。
  4. 映射後,輸出最小值和最大值應該是常數值。

我想我需要某種對數放大。但我不確定如何定義它以符合上述條件。

我可以使用什麼數學公式?

我需要在C++和c#中實現它。如果我知道如何在其中一箇中實現它,我可以將其轉換爲另一個。

+0

聽起來像一個有趣的神經網絡工作(前饋?)! –

+0

@AustinHenley這裏沒有什麼NN可以學習!它的輸出是一個輸入映射,映射數學與輸入無關,所以我在這裏看不到任何NN的使用。 – mans

+0

對不起,那麼壞主意。 –

回答

1

我不太明白問題在哪裏;我錯過了什麼嗎? 你說的似乎都需要一個簡單的逐分量操作,形式的東西:

forall x in range 
    out[x] = ((in[x]-in_min)/(in_max-in_min))^gamma * (out_max-out_min)+out_min 

其中gamma是一些常數,大概小於1,如果你想低的值被放大比高值更。把它想象成一個「伽馬校正」。

我不明白你的「6參數」如何發揮作用?

+0

這是我正在尋找的答案類型。我需要找到gamma如何改變映射,以及如何定義另一個獲取多個參數的模型,並生成更適合我的任務的傳輸線。我的目標是映射圖像像素,並在brither相同時使黑暗區域更亮。 – mans

+1

「伽瑪」可視化的最佳方式是將其視爲伽馬校正。你可以閱讀http://en.wikipedia.org/wiki/Gamma_correction關於伽瑪校正 – CygnusX1

+0

謝謝。這是我正在尋找的。 – mans

相關問題