图像像素灰度内插(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为线性函数的斜率, ...
随机推荐
- oracle 数据库运维知识
1.在数据库中连接用某个用户连接数据库报错: Product: DbVisualizer Pro 9.1.1 Build: #2063 (2013/10/01 12:27) Java VM: Java ...
- myeclipse内存不足的处理
Myeclipse内存溢出解决方案 1.tomcat内存扩展 修改tomcat中bin目录下catalina.bat文件在echo Using CATALINA_BASE: "%CATAL ...
- HDU 4652 Dice:期望dp(成环)【错位相减】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4652 题意: 给你一个有m个面的骰子. 两种询问: (1)"0 m n": “最后 ...
- labview初步理解
1.labview是NI公司开发的一款以图形方式开发程序(G语言)的程序开发环境软件.它的作用与VS一样,是一种程序开发环境.只是vs是以文本语言开发环境而已. 2.labview最广泛应用于开发测试 ...
- kettle监控销售人员当月每天任务完成率_20161107周一
1.上面是目标表,其中激活客户数为当月每天之前30天未下单的客户 2.写SQL SELECT a.销售员,c.当月销售确认额,a.当月订单额,b.当月首单数,b.当月激活数, a1,b.b1,b.c1 ...
- node.js setup wizard ended prematurely Win7安装nodejs失败解决方法
笔记本win7在nodejs官方网站下载.msi文件安装,安装到一半的时候,进度条提示:roll back,because of a error.node.JS setup wizard ended ...
- MODBUS ASCII和RTU两种模式的区别、优缺点
转自:http://blog.sina.com.cn/s/blog_89f286ad0102uzju.html 下表是MODBUS ASCII协议和RTU协议的比较: 协议 开始标记 结束标记 校验 ...
- CS231n 2016 通关 第五、六章 Dropout 作业
Dropout的作用: cell 1 - cell 2 依旧 cell 3 Dropout层的前向传播 核心代码: train 时: if mode == 'train': ############ ...
- 从0起步 BI 第一课
收集 BI 学习资料(了解,书籍,示例demo) 专业人士: http://www.cnblogs.com/aspnetx/p/3189029.html http://www.flybi.net/ h ...
- Apache日志解读
想要知道什么人在什么时候浏览了网站的哪些内容吗?查看Apache的访问日志就可以知道.访问日志是Apache的标准日志,本文详细解释了访问日志的内容以及相关选项的配置. 一.访问日志的格式 Apac ...