我在應用程序中遇到問題,它需要大量內存優化,但現在我必須提供應用程序的測試版本,我需要像「ramrush」這樣的API可以在沒有任何可執行文件的情況下從我的應用程序中調用,Ramrush現在正在神奇地解決我的問題,但是我無法使用我的應用程序提供它。像RAMRush一樣的Ram優化SDK,用於圖像處理
0
A
回答
1
爲了解決業務方案的迫切需求(即使它有點晚了今天)
有在內存優化兩級圖像處理代碼。
- 在更簡單的級別上,程序員試圖儘可能經常和儘可能早地刪除不再需要的圖像對象(即每行代碼後)。
- 更困難的級別需要實現一些圖像處理步驟作爲高效內存管道。
一個例子:
class RgbToGray : ImageSource
{
private ImageSource m_src;
public RgbToGray(ImageSource src)
{
m_src = src;
}
public void GetPixels(int x0, int y0, int rectWidth, int rectHeight, out Pixel[,] result)
{
// omitted: validate parameters
Pixel[,] temp = new Pixel[rectHeight, rectWidth];
m_src.GetPixels(x0, y0, rectWidth, rectHeight, out temp);
for (int y = y0; y < y0 + rectHeight; ++y)
{
for (int x = x0; x < x0 + rectWidth; ++x)
{
result[y,x] = SomeCalculation(temp[y,x]);
}
}
}
};
在該示例中,執行RgbToGray
的按需的圖像處理,而不需要它自己的永久存儲器使用,而是依賴於臨時緩衝器中。爲了使這個實現起作用,調用者必須調用GetPixels
,使其具有必須小於整個圖像大小的特定「緩衝區粒度」,以便實現節省內存的效果。
(具體框架我已經記Windows Imaging Component,但類似的想法可以在許多其他框架中找到諸如OpenCV's MatExpr
模板。)
顯然,並不是所有的框架允許這樣的優化。
+0
最好的答案主要針對Microsoft DebugDiag,它是awwww.com –
相關問題
- 1. 圖像處理:如何處理圖像以用於初始化
- 2. 優化手動圖像處理(.Net 4)
- 3. 如何優化圖像處理類
- 4. 有沒有用於PHP的圖像處理庫,可以像MATLAB一樣逐個像素地處理圖像?
- 5. 用於處理圖像
- 6. Corona SDK:圖像格式優化/信息?
- 7. 圖像優化
- 8. 優化圖像
- 9. 圖像處理規範化
- 10. RAM的優化
- 11. 圖像處理:像Photoshop一樣的柔光算法
- 12. 關於圖像處理
- 13. 像「assert」一樣優化「跟蹤」?
- 14. 如何優化這個圖像處理用最接近的可用RGB替換圖像上的所有像素?
- 15. Slider:圖像優化
- 16. PHP圖像優化
- 17. 圖像優化(iOS)
- 18. 適用於Android的圖像處理庫
- 19. 用於圖像處理的PCA
- 20. 用於流處理圖像的Node.js庫
- 21. 用於大圖像處理的Hadoop
- 22. 用於圖像處理的PHP或Python?
- 23. 用於處理圖像的C++庫
- 24. 用於圖像處理的GPU編程
- 25. 佳能SDK圖像處理示例
- 26. 使用GraphicsMagick優化圖像
- 27. Nginx優化圖像反向代理
- 28. 圖像的批量優化
- 29. Python模塊用於將圖像處理
- 30. SJ4000 + OpenCV + Raspberry Pi用於圖像處理
* Ram優化SDK *它被稱爲程序員。 –
你是對的,但我沒有時間優化堆和非優化的圖像處理代碼堆,我會做很快的功能優化,但我需要一些東西來拯救我今天提供的測試版本。 –
我可以問你使用什麼圖像處理框架?有框架允許內存優化,並且有框架沒有。 – rwong