簡體   English   中英

如何對像素數據使用 CImg 函數?

[英]How to use CImg functions with pixel data?

我正在使用 Visual Studio 並希望找到一個有用的圖像處理庫,它將處理基本的圖像處理功能,例如旋轉,這樣我就不必繼續手動編碼了。 我遇到了 CImg,它支持這一點,以及許多其他有用的功能,以及插值。

但是,我看到的所有示例都顯示通過加載和使用完整圖像來使用 CImg。 我想處理像素數據。 所以我的循環是典型的:

for (x=0;x<width; x++)
for (y=0;y<height; y++)

我想在這種情況下執行雙線性或雙三次旋轉,我看到 CImg 支持這一點。 它提供了一個 rotate() 和 get_rotate 函數等。

我在網上找不到任何示例來說明如何將其與像素數據一起使用。 理想情況下,我可以簡單地將像素顏色、x、y 和插值方法傳遞給它,並讓它返回結果。

任何人都可以提供任何有用的建議嗎? 如果 CImg 不是這種類型的合適庫,有人可以推薦一個簡單、輕量級、易於使用的庫嗎?

謝謝!

您可以使用迭代器將像素數據復制到CImg類,並在完成CImg其復制回來。

std::vector<uint8_t> pixels_src, pixels_dst;
size_t width, height, n_colors;

// Copy from pixel data
cimg_library::CImg<uint8_t> image(width, height, 1, n_colors);
std::copy(pixels_src.begin(), pixels_src.end(), image.begin());

// Do image processing

// Copy to pixel data
pixels_dst.resize(width * height * n_colors);
std::copy(image.begin(), image.end(), pixels_dst.begin());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM