图像像素灰度内插(Matlab实现)
常用的像素灰度内插法:最近邻元法、双线性内插法、三次内插法
%%像素灰度内插
factor = 0.75;%缩放比
u = 0.6;v = 0.7;
itp1 = uint8(zeros(ceil(h/factor),ceil(w/factor)));
itp2 = uint8(zeros(ceil(h/u),ceil(w/v)));
itp3 = uint8(zeros(ceil(h/u),ceil(w/v)));
下述的J3为待插值灰度图像,itp为插值图像
1.最近邻元法
在待求像素的四邻像素中,将距离这点最近的邻像素灰度赋给待求像素。
%最近邻元法
for i = :h/factor
for j = :w/factor
itp1(i,j) = J3(floor(i*factor+0.5),floor(j*factor+0.5));
end
end
2.双线性内插法


%双线性内插法
for i = :h/u-
for j = :w/v-
itp2(i,j) = (-(i*u-floor(i*u)))*(-(j*v-floor(j*v)))*J3(floor(i*u),floor(j*v))...
+(-(i*u-floor(i*u)))*(j*v-floor(j*v))*J3(floor(i*u),floor(j*v)+)...
+(i*u-floor(i*u))*(-(j*v-floor(j*v)))*J3(floor(i*u)+,floor(j*v))...
+(i*u-floor(i*u))*(j*v-floor(j*v))*J3(floor(i*u)+,floor(j*v)+); end
end
3.三次内插法


function [f] = S(x)
if (0<=abs(x))&&(abs(x)<1)
f = 1-2*(abs(x))^2+(abs(x))^3;
elseif (1<=abs(x))&&(abs(x)<2)
f = 4-8*abs(x)+5*(abs(x))^2-(abs(x))^3;
else
f = 0;
end
end %三次内插法
f = double(J3);
u = 0.6;v = 0.7;
for i = ceil(/u):h/u-
for j = ceil(/v):w/v-
A = [S(+(j*v-floor(j*v))) S((j*v-floor(j*v))) S(-(j*v-floor(j*v))) S(-(j*v-floor(j*v)))];
C = [S(+(i*u-floor(i*u)));S((i*u-floor(i*u)));S(-(i*u-floor(i*u)));S(-(i*u-floor(i*u)))];
i1 = floor(i*u); j1 = floor(j*v);
B = [f(i1-,j1-) f(i1-,j1) f(i1-,j1+) f(i1-,j1+);
f(i1,j1-) f(i1,j1) f(i1,j1+) f(i1,j1+);
f(i1+,j1-) f(i1+,j1) f(i1+,j1+) f(i1+,j1+);
f(i1+,j1-) f(i1+,j1) f(i1+,j1+) f(i1+,j1+);];
itp3(i,j) = A*B*C;
end
end
上述的内插法处理的结果出现了黑边,可以通过将黑边区域赋予原始图像的对应区域的像素灰度值。
可通过以下循环实现。
%去黑边
[m,n] = size(J3);%原始图像的行列数 for i = :floor(1/u)
for j = :floor(n/v)
itp(i,j) = J3(ceil(i*u),ceil(j*v));
itp(floor(m/u),j) = J3(m,ceil(j*v));
end
end
for j = :floor(1/v)
for i = :floor(m/u)
itp(i,j) = J3(ceil(i*u),ceil(j*v));
itp(i,floor(n/v)) = J3(ceil(i*u),n);
end
end
图像像素灰度内插(Matlab实现)的更多相关文章
- 图像三维灰度分布图——matlab
p=imread('C:\Users\wangd\Documents\MATLAB\1.jpg'); g=rgb2gray(p); % 转为灰阶图 gg=double(g); % 转为数值矩阵 gg= ...
- DICOM图像像素值(灰度值)转换为CT值
CT值的单位是Hounsfield,简称为Hu,范围是-1024-3071.用于衡量人体组织对X射线的吸收率,设定水的吸收率为0Hu. 在DICOM图像读取的过程中,我们会发现图像的像素值有可能不是这 ...
- C#中的bitmap类和图像像素值获取方法
一.Bitmap类 Bitmap对象封装了GDI+中的一个位图,此位图由图形图像及其属性的像素数据组成.因此Bitmap是用于处理由像素数据定义的图像的对象.该类的主要方法和属性如下: 1. GetP ...
- c#图像处理入门(-bitmap类和图像像素值获取方法) 转
一.Bitmap类 Bitmap对象封装了GDI+中的一个位图,此位图由图形图像及其属性的像素数据组成.因此Bitmap是用于处理由像素数据定义的图像的对象.该类的主要方法和属性如下: 1. GetP ...
- c#图像处理入门(-bitmap类和图像像素值获取方法)
c#图像处理入门 -bitmap类和图像像素值获取方法 一.Bitmap类 Bitmap对象封装了GDI+中的一个位图,此位图由图形图像及其属性的像素数据组成.因此Bitmap是用于处理由像素数据定义 ...
- 基于FPGA的RGB图像转灰度图像算法实现
一.前言 最近学习牟新刚编著<基于FPGA的数字图像处理原理及应用>的第六章直方图操作,由于需要将捕获的图像转换为灰度图像,因此在之前代码的基础上加入了RGB图像转灰度图像的算法实现. 2 ...
- opencv学习笔记(八)IplImage* 访问图像像素的值
opencv2.1版本之前使用IplImage*数据结构来表示图像,2.1之后的版本使用图像容器Mat来存储.IplImage结构体如下所示. typedef struct _IplImage { i ...
- opencv图像像素值读取
说到图像像素,肯定要先认识一下图像中的坐标系长什么样. 1. 坐标体系中的零点坐标为图片的左上角,X轴为图像矩形的上面那条水平线:Y轴为图像矩形左边的那条垂直线.该坐标体系在诸如结构体Mat,Rect ...
- opencv——图像的灰度处理(线性变换/拉伸/直方图/均衡化)
实验内容及实验原理: 1.灰度的线性变换 灰度的线性变换就是将图像中所有的点的灰度按照线性灰度变换函数进行变换.该线性灰度变换函数是一个一维线性函数:f(x)=a*x+b 其中参数a为线性函数的斜率, ...
随机推荐
- spring cloud初识
spring cloud是spring中的一个快速开发框架.本实例采用spring+maven来配置一个简单的spring开发实例. 1.首先安装java和maven环境. ①.安装java,不做过多 ...
- margin的相关属性及应用
1.margin常见问题: ①IE6下双边距 (不推荐使用float+margin,可用padding替代) 详见<css浏览器兼容问题集锦>之4.IE6中margin双边距 ②IE6 ...
- LightOJ - 1151 Snakes and Ladders —— 期望、高斯消元法
题目链接:https://vjudge.net/problem/LightOJ-1151 1151 - Snakes and Ladders PDF (English) Statistics F ...
- jetty使用jndi数据源
之前将项目正常的数据源统一切换成jndi访问的形式(是将c3p0以mbean形式安装到jboss做的数据连接池), 本地测试用的jetty服务器,为了统一数据库访问部分,我也查看文档找到了jetty提 ...
- 分享知识-快乐自己:oracle表分区详解
从以下几个方面来整理关于分区表的概念及操作: 1)表空间及分区表的概念: 2)表分区的具体作用: 3)表分区的优缺点: 4)表分区的几种类型及操作方法: 5)对表分区的维护性操作: 1):表空间及分区 ...
- 分享知识-快乐自己:SpringMvc整合遇到-前台传JSON参数,后台实体类对象接收
前台数据转JSON对象: /** * * @param $myFrom:from表单 * @returns {{}} */ function from($myFrom) { var ebookEntr ...
- bjwc Day0 大型签到日
1.18期末考试 1.19试卷讲评 1.20我开始了bjwc愉快的冬眠之旅 上午先是颁发noip一等奖 我在台下笑得像个没有一等奖的孩子/手动微笑 然后去机房试了一下机 坐在鸡神边上,键盘竟然是坏的, ...
- [HAOI 2011] Problem A
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2298 [算法] 考虑用总人数 - 最多人说真话 显然 , 对于每个人 , 如果他说的 ...
- 【Lintcode】112.Remove Duplicates from Sorted List
题目: Given a sorted linked list, delete all duplicates such that each element appear only once. Examp ...
- 【LeetCode】062. Unique Paths
题目: A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). ...