欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2020年07月05日 10:05:21   作者:cc0587  
這篇文章主要介紹了python 圖像插值 最近鄰、雙線性、雙三次實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

最近鄰:

import cv2
import numpy as np
def 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 cv2
import numpy as np
import math
def 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 cv2
import numpy as np
import 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 0
def 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)

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

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

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

function re_im = nearest(im, p, q)
%最鄰近插值法,輸入目標(biāo)圖像和行縮放、縱縮放倍數(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);
 end
end
re_im = cat(3,re_R,re_G,re_B);
figure,imshow(re_im);

以上這篇python 圖像插值 最近鄰、雙線性、雙三次實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python機(jī)器學(xué)習(xí)庫(kù)scikit-learn:SVR的基本應(yīng)用

    python機(jī)器學(xué)習(xí)庫(kù)scikit-learn:SVR的基本應(yīng)用

    這篇文章主要介紹了python機(jī)器學(xué)習(xí)庫(kù)scikit-learn:SVR的基本應(yīng)用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • python 實(shí)現(xiàn)mysql增刪查改示例代碼

    python 實(shí)現(xiàn)mysql增刪查改示例代碼

    python中可以通過(guò)pymysql實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)的連接,并實(shí)現(xiàn)數(shù)據(jù)庫(kù)的各種操作,這篇文章主要給大家介紹了關(guān)于pymsql實(shí)現(xiàn)增刪改查的示例代碼,需要的朋友可以參考下
    2021-11-11
  • 如何用Python畫一些簡(jiǎn)單形狀你知道嗎

    如何用Python畫一些簡(jiǎn)單形狀你知道嗎

    這篇文章主要介紹了用Python作圖的一個(gè)簡(jiǎn)單實(shí)例,通過(guò)turtle模塊實(shí)現(xiàn)作圖,具有一定參考價(jià)值,需要的朋友可以了解下希望能給你帶來(lái)幫助
    2021-08-08
  • 手把手教你打造個(gè)性化全棧應(yīng)用Python?Reflex框架全面攻略

    手把手教你打造個(gè)性化全棧應(yīng)用Python?Reflex框架全面攻略

    Reflex框架是為了解決傳統(tǒng)全棧開(kāi)發(fā)中的一些挑戰(zhàn)而誕生的,它充分利用了現(xiàn)代前端框架(如React)的優(yōu)勢(shì),與后端技術(shù)(如Node.js)深度集成,使得開(kāi)發(fā)者能夠更加流暢地構(gòu)建整個(gè)應(yīng)用,Reflex的設(shè)計(jì)理念包括簡(jiǎn)化、響應(yīng)性和一致性,旨在提高全棧開(kāi)發(fā)的效率和可維護(hù)性
    2023-12-12
  • PyCharm 2020.2 安裝詳細(xì)教程

    PyCharm 2020.2 安裝詳細(xì)教程

    這篇文章主要介紹了PyCharm 2020.2 安裝詳細(xì)教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • keras topN顯示,自編寫代碼案例

    keras topN顯示,自編寫代碼案例

    這篇文章主要介紹了keras topN顯示,自編寫代碼案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • 解決使用export_graphviz可視化樹報(bào)錯(cuò)的問(wèn)題

    解決使用export_graphviz可視化樹報(bào)錯(cuò)的問(wèn)題

    今天小編就為大家分享一篇解決使用export_graphviz可視化樹報(bào)錯(cuò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • 詳解python selenium 爬取網(wǎng)易云音樂(lè)歌單名

    詳解python selenium 爬取網(wǎng)易云音樂(lè)歌單名

    這篇文章主要介紹了python selenium爬取網(wǎng)易云音樂(lè)歌單名,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • TensorFlow神經(jīng)網(wǎng)絡(luò)構(gòu)造線性回歸模型示例教程

    TensorFlow神經(jīng)網(wǎng)絡(luò)構(gòu)造線性回歸模型示例教程

    這篇文章主要為大家介紹了TensorFlow構(gòu)造線性回歸模型示例教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-11-11
  • 解決keras,val_categorical_accuracy:,0.0000e+00問(wèn)題

    解決keras,val_categorical_accuracy:,0.0000e+00問(wèn)題

    這篇文章主要介紹了解決keras,val_categorical_accuracy:,0.0000e+00問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07

最新評(píng)論