我正在關注Cinder的教程,您在其中加載和顯示圖像爲cinder::gl::Texture
對象。這個班沒有convert2Grayscale
方法,所以 是否可以自己實現這樣的東西? 我可以訪問分離像素哪裏可以申請a simple algorithm? (訪問像素實際上更重要,因爲我想將其用於另一個項目)用灰塵轉換爲灰度
Q
用灰塵轉換爲灰度
1
A
回答
2
每個像素都由3D矢量[R,G,B]表示 其中R是[0,1]中的值紅色通道,G是綠色通道[0,1]中的值,B是藍色通道[0,1]中的值。將3D RGB像素變成標量Y的最簡單的方法是用[0,1](即灰度)表示光強度,即使用以下公式:
Y = .2126 * R^gamma + 0.7152 * G ^伽馬+ 0.0722 * B ^伽馬
凡伽馬在大多數系統等於2.2
現在只要是涉及訪問煤渣中的圖像的像素,你將不得不將圖像加載到Surface對象上。 cinder中的表面對象具有訪問各個像素的接口函數。查看該怎麼辦呢這個驚人的教程:http://www.creativeapplications.net/tutorials/images-in-cinder-tutorials-cinder/
1
更簡單的方法,如煤渣網站上的「Hello, Cinder」教程圖所示:
- 加載鏡像到一個通道對象,這將是默認轉換它一次灰度全部。
使用該通道對象初始化,可以在您
draw()
方法中使用的表面對象,像:無效MyApp的::設置(){
Url url("http://libcinder.org/media/tutorial/paris.jpg"); mChannel = Channel32f(loadImage(loadUrl(url))); mTexture = mChannel; mDrawImage = true;
}
無效TutorialApp :: draw()
{
gl::clear(Color(0, 0, 0), true); if(mDrawImage) { mTexture.enableAndBind(); gl::draw(mTexture, getWindowBounds()); }
}
相關問題
- 1. 轉換爲灰度 - 太慢
- 2. 轉換EGLImageKHR爲灰度
- 3. 轉換爲8位灰度
- 4. 轉換RGB RasterBrick爲灰度
- 5. byte []轉換爲灰度BitmapImage
- 6. 將RGB轉換爲灰度?
- 7. Opencv - 灰度模式vs灰色轉換
- 8. 在require.js中使用灰塵
- 9. 將RGB圖像轉換爲灰度和灰度轉換爲RGB圖像?
- 10. android:將透明度轉換爲灰度
- 11. 灰塵JS點轉換爲字符串鍵名
- 12. 爲什麼要轉換爲灰度opencv?
- 13. OpenCV灰度轉換錯誤
- 14. .NET組件灰度轉換
- 15. 灰塵,如果條件
- 16. @content $鍵= VS在灰塵
- 17. 在灰塵模板循環
- 18. 將彩色bmp轉換爲灰度bmp?
- 19. 將灰度轉換爲柔和
- 20. 將簡單圖像轉換爲灰度
- 21. 將灰度值轉換爲RGB表示?
- 22. 將圖像轉換爲灰度
- 23. 將彩色圖像轉換爲灰度
- 24. 將圖像轉換爲灰度圖像
- 25. 將RGB565轉換爲灰度(8位)
- 26. 將ushort []灰度值轉換爲字節[]
- 27. 將32bpp位圖轉換爲16bpp(灰度)
- 28. 將灰度JPEG轉換爲RGB JPEG
- 29. PHP:將png和gif轉換爲灰度
- 30. 轉換灰度圖像爲RGB