我正在使用位於這裏的MetalVideoCapture示例https://github.com/FlexMonkey/MetalVideoCapture。我在版本改變的唯一的事情是使用MPSImageConvolution(而不是MPSImageGaussianBlur)與核心價值觀:在Metal計算着色器中使用MPSImageConvolution內核
[-2.0, -1.0, 0.0,
-1.0, 1.0, 1.0,
0.0, 1.0, 2.0]
使用值高於沒有改變任何可見的輸出方式。但一個邊緣增強內核例如
[0.0, -1.0, 0.0,
0.0, 1.0, 0.0,
0.0, 0.0, 0.0]
工作,只介紹你的列主要順序;即使這是MPSImageConvolution所期望的,它也不能按行優先順序工作。我真的被這個難住了。我不知道是否有明顯的原因,卷積內核無法在計算管道中工作(僅在渲染管道中),但我無法在線上找到任何信息。
我還修改了代碼庫,將內核應用於靜態圖像而不是實時視頻源;然而,這產生了相同的結果。
我還想指出,我在示例項目的留言板上發佈了相同的問題(https://github.com/FlexMonkey/MetalVideoCapture/issues/1#issuecomment-217609500)。這個例子的作者同樣和我一樣難過,這導致我相信這是我的概念知識中的某種缺陷或差距,甚至認爲這甚至不能工作。
這似乎是個伎倆。謝謝! – SeismicSquall