国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

python 圖像插值 最近鄰、雙線性、雙三次實例

瀏覽:17日期:2022-07-18 16:35:40

最近鄰:

import cv2import numpy as npdef function(img): height,width,channels =img.shape emptyImage=np.zeros((2048,2048,channels),np.uint8) sh=2048/height sw=2048/width for i in range(2048): for j in range(2048): x=int(i/sh) y=int(j/sw) emptyImage[i,j]=img[x,y] return emptyImage img=cv2.imread('e:lena.bmp')zoom=function(img)cv2.imshow('nearest neighbor',zoom)cv2.imshow('image',img)cv2.waitKey(0)

雙線性:

import cv2import numpy as npimport mathdef function(img,m,n): height,width,channels =img.shape emptyImage=np.zeros((m,n,channels),np.uint8) value=[0,0,0] sh=m/height sw=n/width for i in range(m): for j in range(n): x = i/sh y = j/sw p=(i+0.0)/sh-x q=(j+0.0)/sw-y x=int(x)-1 y=int(y)-1 for k in range(3): if x+1<m and y+1<n: value[k]=int(img[x,y][k]*(1-p)*(1-q)+img[x,y+1][k]*q*(1-p)+img[x+1,y][k]*(1-q)*p+img[x+1,y+1][k]*p*q) emptyImage[i, j] = (value[0], value[1], value[2]) return emptyImage img=cv2.imread('e:lena.bmp')zoom=function(img,2048,2048)cv2.imshow('Bilinear Interpolation',zoom)cv2.imshow('image',img)cv2.waitKey(0)

雙三次:

import cv2import numpy as npimport math def S(x): x = np.abs(x) if 0 <= x < 1: return 1 - 2 * x * x + x * x * x if 1 <= x < 2: return 4 - 8 * x + 5 * x * x - x * x * x else: return 0def function(img,m,n): height,width,channels =img.shape emptyImage=np.zeros((m,n,channels),np.uint8) sh=m/height sw=n/width for i in range(m): for j in range(n): x = i/sh y = j/sw p=(i+0.0)/sh-x q=(j+0.0)/sw-y x=int(x)-2 y=int(y)-2 A = np.array([ [S(1 + p), S(p), S(1 - p), S(2 - p)] ]) if x>=m-3: m-1 if y>=n-3: n-1 if x>=1 and x<=(m-3) and y>=1 and y<=(n-3): B = np.array([ [img[x-1, y-1], img[x-1, y], img[x-1, y+1], img[x-1, y+1]], [img[x, y-1], img[x, y], img[x, y+1], img[x, y+2]], [img[x+1, y-1], img[x+1, y], img[x+1, y+1], img[x+1, y+2]], [img[x+2, y-1], img[x+2, y], img[x+2, y+1], img[x+2, y+1]], ]) C = np.array([ [S(1 + q)], [S(q)], [S(1 - q)], [S(2 - q)] ]) blue = np.dot(np.dot(A, B[:, :, 0]), C)[0, 0] green = np.dot(np.dot(A, B[:, :, 1]), C)[0, 0] red = np.dot(np.dot(A, B[:, :, 2]), C)[0, 0] # ajust the value to be in [0,255] def adjust(value): if value > 255: value = 255 elif value < 0: value = 0 return value blue = adjust(blue) green = adjust(green) red = adjust(red) emptyImage[i, j] = np.array([blue, green, red], dtype=np.uint8) return emptyImage img=cv2.imread('e:lena.bmp')zoom=function(img,1024,1024)cv2.imshow('cubic',zoom)cv2.imshow('image',img)cv2.waitKey(0)

補充知識:最鄰近插值法(The nearest interpolation)實現(xiàn)圖像縮放

也稱零階插值。它輸出的像素灰度值就等于距離它映射到的位置最近的輸入像素的灰度值。但當圖像中包含像素之間灰度級有變化的細微結(jié)構(gòu)時,最鄰近算法會在圖像中產(chǎn)生人為加工的痕跡。

具體計算方法:對于一個目的坐標,設(shè)為 M(x,y),通過向后映射法得到其在原始圖像的對應的浮點坐標,設(shè)為 m(i+u,j+v),其中 i,j 為正整數(shù),u,v 為大于零小于1的小數(shù)(下同),則待求象素灰度的值 f(m)。利用浮點 m 相鄰的四個像素求f(m)的值。

function re_im = nearest(im, p, q)%最鄰近插值法,輸入目標圖像和行縮放、縱縮放倍數(shù)%ziheng 2016.3.27[m,n] = size(im);im_R = im(:,:,1);im_G = im(:,:,2);im_B = im(:,:,3);l = round(m*p);h = round(n*q)/3;re_R = uint8(zeros(l,h));re_G = uint8(zeros(l,h));re_B = uint8(zeros(l,h));for dstx = 1:l for dsty = 1:h srcx = max(1,min(m,round(dstx/p))); srcy = max(1,min(n/3,round(dsty/q))); re_R(dstx,dsty) = im_R(srcx,srcy); re_G(dstx,dsty) = im_G(srcx,srcy); re_B(dstx,dsty) = im_B(srcx,srcy); endendre_im = cat(3,re_R,re_G,re_B);figure,imshow(re_im);

以上這篇python 圖像插值 最近鄰、雙線性、雙三次實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 蝴蝶成人世界第八影院 | 成年人免费看 | 欧美一级鲁丝片 | 一级aaaaaa毛片免费 | 亚洲va老文色欧美黄大片人人 | 精品日韩二区三区精品视频 | 黄a视频在线观看 | 欧美freesex10一13黑人 | 久久精品国产亚洲欧美 | 国产黄色大片网站 | 最近日本免费观看视频 | 欧美在线乱妇一级毛片 | 99久久精品久久久久久婷婷 | 精品少妇一区二区三区视频 | 国产在线观看成人 | 国产大片线上免费看 | 午夜亚洲精品 | 97dyy影院理论片 | 国产成人夜间影院在线观看 | 日韩在线 | 中文 | 久久久国产免费影院 | 亚洲精品成人一区二区 | 欧美亚洲一区二区三区 | 日韩99精品| 国产大乳喷奶水在线看 | 全免费a级毛片免费看 | 成年女人毛片 | 精品国产免费观看久久久 | 久久精品国产免费看久久精品 | 亚洲国产日韩欧美综合久久 | 成人精品视频在线观看 | 亚洲免费在线观看视频 | 久草福利社 | 琪琪午夜伦埋大全影院 | 最新国产精品视频免费看 | 韩国19禁主播裸免费福利 | 国产福利微拍精品一区二区 | 手机在线看片福利 | 久久www免费人成_看片高清 | 国产高清视频在线 | 国产一级视频久久 |