日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【图像处理】图像内插“最近邻插值 最近邻内插法(Nearest Neighbour Interpolate)”代码演示(调整图像大小、放大、缩小)

發(fā)布時間:2025/3/20 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【图像处理】图像内插“最近邻插值 最近邻内插法(Nearest Neighbour Interpolate)”代码演示(调整图像大小、放大、缩小) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 何為內插——最近鄰插值,引用自《數字圖像處理——第三版》
    • 代碼演示
      • 1、設置縮放倍數來放大、縮小圖像
      • 2、設置圖片最終分辨率來放大、縮小圖像
      • 代碼中使用的源圖
    • 20200625 注意bug

何為內插——最近鄰插值,引用自《數字圖像處理——第三版》

代碼演示

1、設置縮放倍數來放大、縮小圖像

# -*- coding: utf-8 -*- """ @File : 最近鄰插值.py @Time : 2020/6/23 9:53 @Author : Dontla @Email : sxana@qq.com @Software: PyCharm """ import cv2 as cv import numpy as npdef nni(img, scale):srcH, srcW, _ = img.shapedstH, dstW = round(srcH * scale[0]), round(srcW * scale[1])img_ = np.zeros((dstH, dstW, 3), dtype=np.uint8)# 列外層,行內層# for i in range(dstH - 1): # 錯了,不用減一for i in range(dstH):# for j in range(dstW - 1): # 錯了,不用減一for j in range(dstW):img_[i, j] = img[round(srcH * i / dstH), round(srcW * j / dstW)]return img_# 在這里設置放大倍數(縱,橫) scale = 0.3, 0.5 # print(type(scale)) # <class 'tuple'> img = cv.imread('Lenna_clip.jpg') img_ = nni(img, scale) cv.imshow('win1', img) # 現實原圖 cv.imshow('win2', img_) # 顯示縮放后的圖 cv.waitKey(0)

運行結果:

可見圖片按照我們的要求,縱向變成了原來的0.3倍,橫向變成了原來的0.5倍

2、設置圖片最終分辨率來放大、縮小圖像

# -*- coding: utf-8 -*- """ @File : 最近鄰插值.py @Time : 2020/6/23 9:53 @Author : Dontla @Email : sxana@qq.com @Software: PyCharm """ import cv2 as cv import numpy as npdef nni(img, resolution):srcH, srcW, _ = img.shapedstH, dstW = resolutionimg_ = np.zeros((dstH, dstW, 3), dtype=np.uint8)# 列外層,行內層for i in range(dstH - 1):for j in range(dstW - 1):img_[i, j] = img[round(srcH * i / dstH), round(srcW * j / dstW)]return img_# 在這里設置圖片最終分辨率(縱,橫) resolution = 300, 600 # print(type(scale)) # <class 'tuple'> img = cv.imread('Lenna_clip.jpg') img_ = nni(img, resolution) cv.imshow('win1', img) cv.imshow('win2', img_) cv.waitKey(0)

結果:

可見圖片按照我們的要求,將圖片最終分辨率縮放成了600×300

代碼中使用的源圖

參考文章1:圖像處理中的“內插”是什么?插值、圖像內插值、圖像間插值、重取樣(用已知數據來估計未知位置的數值的處理)(最近鄰內插法、雙線性內插)

參考文章2:最近鄰插值(nearest neighbor)-----python

20200625 注意bug

注意以上代碼可能有bug,當圖片橫向或縱向放大時,使用round()函數有可能會使得靠近邊緣的像素下標越界導致報錯,如果要優(yōu)化,需增加if判斷!!!!

總結

以上是生活随笔為你收集整理的【图像处理】图像内插“最近邻插值 最近邻内插法(Nearest Neighbour Interpolate)”代码演示(调整图像大小、放大、缩小)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。