真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

IOS OpenGL ES GPUImage 圖像閾值邊緣檢測(cè)GPUImageThresholdEdgeDetectionFilter

目錄

“專業(yè)、務(wù)實(shí)、高效、創(chuàng)新、把客戶的事當(dāng)成自己的事”是我們每一個(gè)人一直以來堅(jiān)持追求的企業(yè)文化。 創(chuàng)新互聯(lián)建站是您可以信賴的網(wǎng)站建設(shè)服務(wù)商、專業(yè)的互聯(lián)網(wǎng)服務(wù)提供商! 專注于成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、軟件開發(fā)、設(shè)計(jì)服務(wù)業(yè)務(wù)。我們始終堅(jiān)持以客戶需求為導(dǎo)向,結(jié)合用戶體驗(yàn)與視覺傳達(dá),提供有針對(duì)性的項(xiàng)目解決方案,提供專業(yè)性的建議,創(chuàng)新互聯(lián)建站將不斷地超越自我,追逐市場(chǎng),引領(lǐng)市場(chǎng)!

  • 一.簡(jiǎn)介
  • 二.效果演示
  • 三.源碼下載
  • 四.猜你喜歡

零基礎(chǔ) OpenGL (ES) 學(xué)習(xí)路線推薦 : OpenGL (ES) 學(xué)習(xí)目錄 >> OpenGL ES 基礎(chǔ)

零基礎(chǔ) OpenGL (ES) 學(xué)習(xí)路線推薦 : OpenGL (ES) 學(xué)習(xí)目錄 >> OpenGL ES 轉(zhuǎn)場(chǎng)

零基礎(chǔ) OpenGL (ES) 學(xué)習(xí)路線推薦 : OpenGL (ES) 學(xué)習(xí)目錄 >> OpenGL ES 特效

零基礎(chǔ) OpenGL (ES) 學(xué)習(xí)路線推薦 : OpenGL (ES) 學(xué)習(xí)目錄 >> OpenGL ES 函數(shù)

零基礎(chǔ) OpenGL (ES) 學(xué)習(xí)路線推薦 : OpenGL (ES) 學(xué)習(xí)目錄 >> OpenGL ES GPUImage 使用

零基礎(chǔ) OpenGL (ES) 學(xué)習(xí)路線推薦 : OpenGL (ES) 學(xué)習(xí)目錄 >> OpenGL ES GLSL 編程

一.簡(jiǎn)介

GPUImage 共 125 個(gè)濾鏡, 分為四類

1、Color adjustments : 31 filters , 顏色處理相關(guān)
2、Image processing : 40 filters , 圖像處理相關(guān).
3、Blending modes : 29 filters , 混合模式相關(guān).
4、Visual effects : 25 filters , 視覺效果相關(guān).

GPUImageThresholdEdgeDetectionFilter 屬于 GPUImage 圖像視覺效果相關(guān),用于圖像閾值邊緣檢測(cè)。shader 源碼如下:

/******************************************************************************************/
//@Author:猿說編程
//@Blog(個(gè)人博客地址): www.codersrc.com
//@File:IOS – OpenGL ES GPUImage GPUImageThresholdEdgeDetectionFilter
//@Time:2022/06/26 06:30
//@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅(jiān)持不懈地積累!
/******************************************************************************************/

// Invert the colorspace for a sketch
#if TARGET_IPHONE_SIMULATOR || TARGET_OS_IPHONE
NSString *const kGPUImageThresholdEdgeDetectionFragmentShaderString = SHADER_STRING
(
 precision highp float;

 varying vec2 textureCoordinate;
 varying vec2 leftTextureCoordinate;
 varying vec2 rightTextureCoordinate;

 varying vec2 topTextureCoordinate;
 varying vec2 topLeftTextureCoordinate;
 varying vec2 topRightTextureCoordinate;

 varying vec2 bottomTextureCoordinate;
 varying vec2 bottomLeftTextureCoordinate;
 varying vec2 bottomRightTextureCoordinate;

 uniform sampler2D inputImageTexture;
 uniform lowp float threshold;

 uniform float edgeStrength;

 void main()
 {
//     float bottomLeftIntensity = texture2D(inputImageTexture, bottomLeftTextureCoordinate).r;
//     float topRightIntensity = texture2D(inputImageTexture, topRightTextureCoordinate).r;
//     float topLeftIntensity = texture2D(inputImageTexture, topLeftTextureCoordinate).r;
//     float bottomRightIntensity = texture2D(inputImageTexture, bottomRightTextureCoordinate).r;
     float leftIntensity = texture2D(inputImageTexture, leftTextureCoordinate).r;
     float rightIntensity = texture2D(inputImageTexture, rightTextureCoordinate).r;
     float bottomIntensity = texture2D(inputImageTexture, bottomTextureCoordinate).r;
     float topIntensity = texture2D(inputImageTexture, topTextureCoordinate).r;
     float centerIntensity = texture2D(inputImageTexture, textureCoordinate).r;
//     float h = -topLeftIntensity - 2.0 * topIntensity - topRightIntensity + bottomLeftIntensity + 2.0 * bottomIntensity + bottomRightIntensity;
//     float v = -bottomLeftIntensity - 2.0 * leftIntensity - topLeftIntensity + bottomRightIntensity + 2.0 * rightIntensity + topRightIntensity;
//     float h = -topLeftIntensity - 2.0 * topIntensity - topRightIntensity + leftIntensity + 2.0 * centerIntensity + rightIntensity;
//     float v = -bottomLeftIntensity - 2.0 * leftIntensity - topLeftIntensity + bottomIntensity + 2.0 * centerIntensity + topIntensity;
     float h = (centerIntensity - topIntensity) + (bottomIntensity - centerIntensity);
     float v = (centerIntensity - leftIntensity) + (rightIntensity - centerIntensity);
//     float h = (centerIntensity - topIntensity);
//     float j = (topIntensity - centerIntensity);
//     h = max(h,j);
//     j = abs(h);
//     float v = (centerIntensity - leftIntensity);

    float mag = length(vec2(h, v)) * edgeStrength;
     mag = step(threshold, mag);

//     float mag = abs(h);

//     gl_FragColor = vec4(h, h, h, 1.0);
//     gl_FragColor = vec4(texture2D(inputImageTexture, textureCoordinate));
//     gl_FragColor = vec4(h, centerIntensity, j, 1.0);
     gl_FragColor = vec4(mag, mag, mag, 1.0);
 }
);
#else
NSString *const kGPUImageThresholdEdgeDetectionFragmentShaderString = SHADER_STRING
(
 varying vec2 textureCoordinate;
 varying vec2 leftTextureCoordinate;
 varying vec2 rightTextureCoordinate;

 varying vec2 topTextureCoordinate;
 varying vec2 topLeftTextureCoordinate;
 varying vec2 topRightTextureCoordinate;

 varying vec2 bottomTextureCoordinate;
 varying vec2 bottomLeftTextureCoordinate;
 varying vec2 bottomRightTextureCoordinate;

 uniform sampler2D inputImageTexture;
 uniform float threshold;

 uniform float edgeStrength;

 void main()
 {
     float bottomLeftIntensity = texture2D(inputImageTexture, bottomLeftTextureCoordinate).r;
     float topRightIntensity = texture2D(inputImageTexture, topRightTextureCoordinate).r;
     float topLeftIntensity = texture2D(inputImageTexture, topLeftTextureCoordinate).r;
     float bottomRightIntensity = texture2D(inputImageTexture, bottomRightTextureCoordinate).r;
     float leftIntensity = texture2D(inputImageTexture, leftTextureCoordinate).r;
     float rightIntensity = texture2D(inputImageTexture, rightTextureCoordinate).r;
     float bottomIntensity = texture2D(inputImageTexture, bottomTextureCoordinate).r;
     float topIntensity = texture2D(inputImageTexture, topTextureCoordinate).r;
     float h = -topLeftIntensity - 2.0 * topIntensity - topRightIntensity + bottomLeftIntensity + 2.0 * bottomIntensity + bottomRightIntensity;
     h = max(0.0, h);
     float v = -bottomLeftIntensity - 2.0 * leftIntensity - topLeftIntensity + bottomRightIntensity + 2.0 * rightIntensity + topRightIntensity;
     v = max(0.0, v);

     float mag = length(vec2(h, v)) * edgeStrength;
     mag = step(threshold, mag);

     gl_FragColor = vec4(vec3(mag), 1.0);
 }
);
#endif

二.效果演示

使用 GPUImageThresholdEdgeDetectionFilter **,**原圖如下:

使用 GPUImageThresholdEdgeDetectionFilter 效果如下:

三.源碼下載

OpenGL ES Demo 下載地址 : IOS OpenGL ES GPUImage 圖像閾值邊緣檢測(cè) GPUImageThresholdEdgeDetectionFilter

四.猜你喜歡

  1. IOS OPenGL ES 設(shè)置圖像亮度 GPUImageBrightnessFilter
  2. IOS OPenGL ES 調(diào)節(jié)圖像曝光度 GPUImageExposureFilter
  3. IOS OpenGL ES 調(diào)節(jié)圖像對(duì)比度 GPUImageContrastFilter
  4. IOS OPenGL ES 調(diào)節(jié)圖像飽和度 GPUImageSaturationFilter
  5. IOS OPenGL ES 調(diào)節(jié)圖像伽馬線 GPUImageGammaFilter
  6. IOS OpenGL ES 調(diào)節(jié)圖像反色 GPUImageColorInvertFilter
  7. IOS OpenGL ES 調(diào)節(jié)圖像褐色 GPUImageSepiaFilter
  8. IOS OpenGL ES 調(diào)節(jié)圖像灰色 GPUImageGrayscaleFilter
  9. IOS OpenGL ES 調(diào)節(jié)圖像 RGB 通道 GPUImageRGBFilter
  10. IOS OpenGL ES 調(diào)節(jié)圖像不透明度 GPUImageOpacityFilter
  11. IOS OpenGL ES 調(diào)節(jié)圖像陰影 GPUImageHighlightShadowFilter
  12. IOS OpenGL ES 調(diào)節(jié)圖像色彩替換 GPUImageFalseColorFilter
  13. GPUImage – 色彩直方圖 GPUImageHistogramFilter
  14. GPUImage – 色彩直方圖 GPUImageHistogramGenerator
  15. GPUImage – 像素平均色值 GPUImageAverageColor
  16. GPUImage – 亮度平均 GPUImageLuminosity
  17. IOS OpenGL ES 調(diào)節(jié)圖像色度 GPUImageHueFilter
  18. IOS OpenGL ES 指定顏色摳圖 GPUImageChromaKeyFilter
  19. IOS OpenGL ES 調(diào)節(jié)圖像白平衡/色溫 GPUImageWhiteBalanceFilter
  20. IOS OpenGL ES 設(shè)置圖像 lookup 濾鏡 GPUImageLookupFilter
  21. IOS OpenGL ES 設(shè)置圖像濾鏡 GPUImageAmatorkaFilter
  22. IOS OpenGL ES 設(shè)置圖像濾鏡 GPUImageSoftEleganceFilter
  23. IOS OpenGL ES 設(shè)置圖像銳化 GPUImageSharpenFilter
  24. IOS OpenGL ES 繪制十字 GPUImageCrosshairGenerator
  25. IOS OpenGL ES 繪制線條 GPUImageLineGenerator
  26. IOS OpenGL ES 設(shè)置圖像黑白燥點(diǎn) GPUImageLocalBinaryPatternFilter
  27. IOS OpenGL ES 設(shè)置圖像卡通效果(黑色粗線描邊) GPUImageToonFilter
  28. IOS OpenGL ES 桑原濾波/水粉畫模糊效果 GPUImageKuwaharaFilter
  29. IOS OpenGL ES 黑白馬賽克效果 GPUImageMosaicFilter
  30. IOS OpenGL ES 像素化馬賽克效果 GPUImagePixellateFilter
  31. IOS OpenGL ES 同心圓像素化馬賽克效果 GPUImagePolarPixel
  32. IOS OpenGL ES 黑白網(wǎng)狀效果 GPUImageCrosshatchFilter
  33. IOS OpenGL ES 色彩丟失/模糊效果 GPUImageColorPackingFilter
  34. IOS OpenGL ES 圖像暈影 GPUImageVignetteFilter
  35. IOS OpenGL ES 圖像漩渦 GPUImageSwirlFilter
  36. IOS OpenGL ES 圖像魚眼擴(kuò)散效果 GPUImageBulgeDistortionFilter
  37. IOS OpenGL ES 圖像魚眼移動(dòng)效果 GPUImageBulgeDistortionFilter
  38. IOS OpenGL ES 圖像凹面鏡移動(dòng)效果 GPUImagePinchDistortionFilter
  39. IOS OpenGL ES 圖像凹面鏡放大效果 GPUImagePinchDistortionFilter
  40. IOS OpenGL ES 圖像哈哈鏡效果 GPUImageStretchDistortionFilter
  41. IOS OpenGL ES 圖像水晶球效果 GPUImageGlassSphereFilter
  42. IOS OpenGL ES 圖像球形折射 GPUImageSphereRefractionFilter
  43. IOS OpenGL ES 圖像色調(diào)分離噪點(diǎn)效果 GPUImagePosterizeFilter
  44. IOS OpenGL ES 圖像 CGA 色彩濾鏡 GPUImageCGAColorspaceFilter
  45. IOS OpenGL ES 圖像柏林噪點(diǎn)/花邊噪點(diǎn) GPUImagePerlinNoiseFilter
  46. IOS OpenGL ES 圖像加亮邊緣 GPUImage3x3ConvolutionFilter
  47. IOS OpenGL ES 圖像浮雕 3d 效果 GPUImageEmbossFilter
  48. IOS OpenGL ES 圖像馬賽克圓點(diǎn) GPUImagePolkaDotFilter
  49. IOS OpenGL ES 圖像侵蝕邊緣黑白模糊 GPUImageErosionFilter
  50. IOS OpenGL ES 圖像侵蝕邊緣色彩模糊 GPUImageRGBErosionFilter
  51. IOS OpenGL ES 圖像擴(kuò)展邊緣黑白模糊 GPUImageDilationFilter
  52. IOS OpenGL ES 圖像擴(kuò)展邊緣彩色模糊 GPUImageRGBDilationFilter
  53. IOS OpenGL ES GPUImage 黑白色調(diào)模糊 GPUImageOpeningFilter
  54. IOS OpenGL ES GPUImage 彩色模糊 GPUImageRGBOpeningFilter
  55. IOS OpenGL ES GPUImage 圖像黑白色調(diào)模糊/暗色提亮 GPUImageClosingFilter
  56. IOS OpenGL ES GPUImage 圖像彩色調(diào)模糊/暗色提亮 GPUImageRGBClosingFilter
  57. IOS OpenGL ES GPUImage 圖像 Lanczos 重取樣模糊效果 GPUImageLanczosResamplingFilter
  58. IOS OpenGL ES GPUImage 圖像顯示亮度最高的像素,其他為黑 GPUImageNonMaximumSuppressionFilter
  59. IOS OpenGL ES GPUImage 圖像顯示亮度最高的像素,其他為黑 GPUImageThresholdedNonMaximumSuppressionFilter
  60. IOS OpenGL ES GPUImage 圖像 Sobel 邊緣檢測(cè),類似漫畫反色 GPUImageSobelEdgeDetectionFilter
  61. IOS OpenGL ES GPUImage GPUImageWeakPixelInclusionFilter
  62. IOS OpenGL ES GPUImage GPUImageDirectionalNonMaximumSuppressionFilter
  63. IOS OpenGL ES GPUImage 圖像閾值邊緣檢測(cè) GPUImageThresholdEdgeDetectionFilter

本文由博客 - 猿說編程 猿說編程 發(fā)布!


文章標(biāo)題:IOS OpenGL ES GPUImage 圖像閾值邊緣檢測(cè)GPUImageThresholdEdgeDetectionFilter
分享鏈接:http://weahome.cn/article/dsoiihg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部