c语言中系统函数设定像素,在imag中对每个像素应用自定义函数的快速方法
我正在尋找一種更快的方法來應用一個自定義函數(shù)到一個圖像,我用來刪除藍色背景。我有一個函數(shù)可以計算出每個像素與背景中藍色的距離。帶有循環(huán)的原始代碼如下所示:def dist_to_blue(pix):
rdist = 76 - pix[0]
gdist = 150 - pix[1]
bdist = 240 - pix[2]
return rdist*rdist + gdist*gdist + bdist*bdist
imgage.shape #outputs (576, 720, 3)
for i, row in enumerate(image):
for j, pix in enumerate(row):
if dist_to_blue(pix) < 12000: image[i,j] = [255,255,255]
然而,對于這個相對較小的圖像,此代碼需要大約8秒的時間來運行。我一直在嘗試使用numpy的“vectorize”函數(shù),但這會將該函數(shù)單獨應用于每個值。但是我想做的每一個像素aka不擴展z/rgb維度
我提出的唯一改進是將for循環(huán)替換為以下內(nèi)容:
m = np.apply_along_axis(lambda pix: (255,255,255) if dist_to_blue(pix) < 12000 else pix, 2, image)
只需7秒,速度仍然非常緩慢。有沒有我遺漏的東西可以加快執(zhí)行時間
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的c语言中系统函数设定像素,在imag中对每个像素应用自定义函数的快速方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 团建朋友圈文案怎么写一句话145个
- 下一篇: 升级鸿蒙系统如何退出,华为鸿蒙2.0系统