数字图像处理之最近邻内插算法的实现
来源:互联网 发布:伊宁关键字排名优化 编辑:程序博客网 时间:2024/05/21 00:16
这是本人的第一篇个人笔记,忘指正错误。
利用matlab实现最近邻内插实现图像的缩放,利用仿射变换的思想,采用后向映射法进行缩放。
原理如下:
src代表原图像,dst代表需要缩放后的图像。w0,h0分别是原图像src的列数以及行数,w1,h1是dst的列数以及行数
对应着图像的宽和高。fw=w0/w1,代表宽度缩放因子,fh=h0/h1代表高度缩放因子。利用dst中的每个像素坐标点后向映射找到在src中的坐标点,寻找最近的像素点,将该点像素值赋值给dst中的点。
matlab代码如下:
% 实现最近邻内插
% 利用仿射变换的思想,采用后向映射法
src = imread('lena.jpeg');
% src = rgb2gray(src);
% 获取图像的宽和高,即图像的列数和行数
[h0, w0, z0] = size(src);
% 定义我们想放大的图像的尺寸
dst = zeros(800,800,3);
[h1, w1, z1] = size(dst);
% 分别得到x轴(即高)的缩放因子和y轴(宽)的缩放因子
fh = h0/h1;
fw = w0/w1;
% 进行差值处理
for i=1:800
for j=1:800
index_x=round(i*fh);
index_y=round(j*fw);
% 防止下标出现0和上标超过src的大小
if index_x==0
index_x=index_x+1;
end
if index_y==0
index_y=index_y+1;
end
if index_x>h0
index_x=index_x-1;
end
if index_y>w0
index_y=index_y-1;
end
dst(i,j,:) = src(index_x,index_y,:);
end
end
figure('name','source image')
imshow(src)
figure('name','target image')
% 在matlab中必须先转换一下数据类型,才可以正常显示
dst = im2uint8(mat2gray(dst));
imshow(dst)
- 数字图像处理之最近邻内插算法的实现
- 图像内插-最近邻内插法
- 数字图像缩放之最近邻插值与双线性插值处理效果对比
- 最近邻内插值与双线性插值
- 学习问题:图像内插-最近邻内插法
- KNN最近邻基于欧几里德距离的JAVA算法实现
- 最近邻算法的实现:k-d tree
- 数据挖掘:K最近邻(KNN)算法的java实现
- 数据挖掘:K最近邻(KNN)算法的java实现
- 数据挖掘:K最近邻(KNN)算法的java实现
- 最简单的K近邻算法 KNN python实现
- 图像的插值算法之最近邻插值
- java实现K-最近邻算法
- K最近邻算法及其Python实现
- knn最近邻算法原理与实现
- 数字图像处理,图像锐化算法的C++实现
- Scikit-learn实战之最近邻算法
- tenserflow实例之最近邻算法
- 【十】机器学习之路——logistic回归python实现
- Myeclispe 导入css空指针异常 background: rgba(0, 0, 0, 0.3)
- 蓝桥杯 算法训练 Anagrams问题
- 位运算符
- redis的部分问题
- 数字图像处理之最近邻内插算法的实现
- 个人总结28
- 无法删除对象 'Student',因为该对象正由一个 FOREIGN KEY 约束引用。
- leetcode: 26. Remove Duplicates from Sorted Array
- 习题6;6.1
- C++中计算大数阶乘的较短代码
- LeetCode.508 Most Frequent Subtree Sum
- 进程调度算法
- Linux趣事 -- (2.1)学生信息管理系统