我正在嘗試將圖像放大 200%,但輸出圖像上有一些奇怪的條。我認為它與中心像素有關(guān)。我正在嘗試在沒有諸如 resize() 之類的庫函數(shù)的情況下做到這一點。作為參考,我正在嘗試實現(xiàn)此功能:import numpy as npimg = cv2.imread('C:\\Users\\usama\\Downloads\\lena.tiff',0) # Open Image in grayscaleorigImg = np.asarray(img) # Convert Image to 2D ArrayupscaledImg = np.zeros((1024,1024)) # Empty Array for upscaled ImagerowOld = 0 # Orignal Image RowrowNew = 0 # Upscaled Image RowcolOld = 0 # Original Image ColumncolNew = 0 # Upscaled Image Columndef pixeltop(): return int(origImg[rowOld][colOld]) / 2 + int(origImg[rowOld][colOld + 1]) / 2def pixelcenter(): return (int(origImg[rowOld+1][colOld]) + int(origImg[rowOld+1][colOld + 1]) + int(origImg[rowOld+1][colOld]) + int(origImg[rowOld][colOld + 1]))/5def pixelleft(): return int(origImg[rowOld][colOld]) / 2 + int(origImg[rowOld + 1][colOld]) / 2def pixelright(): return int(origImg[rowOld][colOld + 1]) / 2 + int(origImg[rowOld + 1][colOld + 1]) / 2def pixelbottom(): return int(origImg[rowOld + 1][colOld]) / 2 + int(origImg[rowOld + 1][colOld + 1]) / 2while rowOld < (len(origImg)): # Outer Loop for transversing rows colOld = 0 colNew = 0 while colOld < (len(origImg)): # Inner Loop for transversing columns upscaledImg[rowNew][colNew] = origImg[rowOld][colOld] upscaledImg[rowNew][colNew+1] = pixeltop() upscaledImg[rowNew][colNew+2] = origImg[rowOld][colOld+1] upscaledImg[rowNew+1][colNew] = pixelleft() upscaledImg[rowNew+1][colNew+1] = pixelcenter() upscaledImg[rowNew+1][colNew+2] = pixelright() upscaledImg[rowNew+2][colNew] = origImg[rowOld+1][colOld] upscaledImg[rowNew+2][colNew+1] = pixelbottom() upscaledImg[rowNew+2][colNew+2] = origImg[rowOld+1][colOld+1] colOld +=2 colNew +=4 if(rowOld == 511): break rowOld += 2 rowNew += 4cv2.imwrite('upscaled.png',upscaledImg)輸出:
1 回答

牛魔王的故事
TA貢獻1830條經(jīng)驗 獲得超3個贊
新圖像是通過修改 3x3 像素的窗口構(gòu)建的,但是您的窗口移動 4 像素 x 4 像素,留下一個像素的間隙,因此出現(xiàn)黑條。
僅關(guān)注行的示例:
我們從 rownew=0 開始
-> Img[0] 已設(shè)置
-> Img[0+1] 已設(shè)置
->img[0+2] 已設(shè)置
現(xiàn)在 rownew+=4
-> Img[4+0] 已設(shè)置
->Img[4+1] 已設(shè)置
->Img[4+2] 已設(shè)置
將 Img[3] 留空
您可以將窗口的填充更改為 3 或?qū)崿F(xiàn)分配以擁有 4x4 窗口
添加回答
舉報
0/150
提交
取消