2
我正在研究一个基本的CS类,并且在其中我们有一个项目,我们必须在Python中为2D卷积编写代码。我已经把我写下面的代码:python中的2D卷积
def Convolve2D(image1, K, image2):
#iterate over all rows (ignore 1-pixel borders)
for v in range(1, image2.getHeight()-1):
graphics.update() # this updates the output for each row
# for every row, iterate over all columns (again ignore 1-pixel borders)
for u in range(1, image2.getWidth()-1):
# for every pixel, iterate over region of overlap between
# input image and 3x3 kernel centered at current pixel
for i in range (0, 3):
for j in range (0, 3):
# compute output image pixel
image2.setPixel(u,v,graphics.color_rgb((image2.getPixel(u,v)[0] + image1.getPixel(u-1+i,v-1+j)[0]*K[i][j]),
(image2.getPixel(u,v)[1] + image1.getPixel(u-1+i,v-1+j)[1]*K[i][j]), (image2.getPixel(u,v)[2]+image1.getPixel(u-1+i,v-1+j)[2]*K[i][j])))
为最后一步我必须钳位和设置输出图像。通过钳位,我被要求使用之前定义的钳位功能:
def Clamp(pix):
pix = abs(pix)
if pix > 255:
pix = 255
return pix
但我无法获得最后一步的工作。任何意见,将不胜感激。
也许我错过了它。我没有看到你叫'Clamp()'的地方。你有什么错误吗?如果是这样,请发布完整的回溯。谢谢。 – bernie 2012-03-25 00:19:37
我每次尝试使用钳位都遇到错误。 – Kristen 2012-03-25 00:21:45
@KirstenLuethy发布实际错误将有所帮助 – prelic 2012-03-25 00:24:35