iOS實現圖像的反色,懷舊,色彩直方圖效果


  反色是與原色疊加可以變為白色的顏色,即用白色(RGB:1.0,1.0,1.0)減去原色的顏色。比如說紅色(RGB:1.0,0,0)的反色是青色(0,1.0,1.0)。在OPENGL ES中為1.

  通過導入GPUImage庫的GPUImageColorInvertFilter來實現iOS的圖像反色處理

 1 (  2  varying highp vec2 textureCoordinate;  3  
 4  uniform sampler2D inputImageTexture;  5  
 6  void main()  7  {  8     lowp vec4 textureColor = texture2D(inputImageTexture, textureCoordinate);  9     
10     gl_FragColor = vec4((1.0 - textureColor.rgb), textureColor.w); 11  } 12 );

  lowp vec4 textureColor = texture2D(inputImageTexture, textureCoordinate);

   我們首先使用texture2D函數來獲取圖像的顏色RGBA空間

 

  gl_FragColor = vec4((1.0 - textureColor.rgb), textureColor.w);

  使用1-對應的RGB值來得到新的RGB值。生成新的顏色,然后着色。

+ (UIImage *)applyColorInvertFilter:(UIImage *)image { GPUImageColorInvertFilter *filter = [[GPUImageColorInvertFilter alloc] init]; [filter forceProcessingAtSize:image.size]; GPUImagePicture *pic = [[GPUImagePicture alloc] initWithImage:image]; [pic addTarget:filter]; [pic processImage]; [filter useNextFrameForImageCapture]; return [filter imageFromCurrentFramebuffer]; }

 

效果圖

  

 

  

 

  

 

灰色的RGB值是(0.5,0.5,0.5) 使用GPUImageSepiaFilter對象來實現圖像的灰色處理

+ (UIImage *)applySepiaFilter:(UIImage *)image { GPUImageSepiaFilter *filter = [[GPUImageSepiaFilter alloc] init]; [filter forceProcessingAtSize:image.size]; GPUImagePicture *pic = [[GPUImagePicture alloc] initWithImage:image]; [pic addTarget:filter]; [pic processImage]; [filter useNextFrameForImageCapture]; return [filter imageFromCurrentFramebuffer]; }

  

 

   色彩直方圖

   色彩直方圖是在許多圖像檢索系統中被廣泛采用的顏色特征。它所描述的是不同色彩在整幅圖像中所占的比例,而並不關心每種色彩所處的空間位置,即無法描述圖像中的對象或物體。顏色直方圖特別適於描述那些難以進行自動分割的圖像。

GPUImageHistogramGenerator對象生成圖像的色彩直方圖

+ (UIImage *)applyHistogramFilter:(UIImage *)image { GPUImageHistogramGenerator *filter = [[GPUImageHistogramGenerator alloc] init]; [filter forceProcessingAtSize:image.size]; GPUImagePicture *pic = [[GPUImagePicture alloc] initWithImage:image]; [pic addTarget:filter]; [pic processImage]; [filter useNextFrameForImageCapture]; return [filter imageFromCurrentFramebuffer]; }

 

  

  

 

 

 

 

 

 

 

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM