图像双三次插值中遇到的问题(镶边、错误点)

测试图像:

src3.bmp 0 2 tar

src3.bmp 37.5 2 tar:会出现小点(其值为205)

分析原因是该处点未赋值!

可以发现若缩小循环后,所有未赋值的点都会是205。

具体分析是if语句条件没判别全,导致有点没被覆盖上赋值。if=255没考虑。

                if(middle<255)
                pbTag[y*2*iWidth+x]=middle;
                else if(middle>255)
                    pbTag[y*2*iWidth+x]=255;

应改为:

if(middle<=255)
                pbTag[y*2*iWidth+x]=middle;
                else if(middle>255)
                    pbTag[y*2*iWidth+x]=255;

// if(middle>255)
// pbTag[y*2*iWidth+x]=255;
// else
// pbTag[y*2*iWidth+x]=middle;

会发现并不是全白的!隐约会看到灰色块!其值为254!

对于镶边的问题也是插值后值的问题:

某些值为负值!

应加入判断:

                if(middle<=255&&middle>=0)
                pbTag[y*2*iWidth+x]=middle;
                else if(middle>255)
                    pbTag[y*2*iWidth+x]=255;
                else
                    pbTag[y*2*iWidth+x]=0;

还是能看到平坦区域的254和255差别。

原文地址:https://www.cnblogs.com/wxl845235800/p/9210594.html

时间: 2024-10-15 11:25:53

图像双三次插值中遇到的问题(镶边、错误点)的相关文章

[翻译]鲁棒的尺度不变特征匹配在遥感图像配准中应用(Robust Scale-Invariant Feature Matching for Remote Sensing Image Registration)

李乔亮,汪国有,刘建国,会员,IEEE,和陈少波 2008年8月7日接收;2008年10月22日和2008年11月27日修改.2009年2月2日首版:当前版本出版于2009年4月17日.本项工作由中国国家基础研究项目60672060资助. 中国湖北省武汉市华中科技大学模式识别与人工智能国家重点实验室,邮编430074(邮箱:[email protected];   [email protected];  [email protected];  [email protected]) 数字对象识别编

[家里蹲大学数学杂志]第055期图像滤波中的方向扩散模型

$\bf 摘要$: 本文给出了王大凯等编的<图像处理中的偏微分方程方法>第 5.4.1 节的详细论述. $\bf 关键词$: 图像滤波; 方向扩散模型; matlab 编程 1. 模型的建立 从保护图像边缘的观点出发, 我们希望扩散是沿着平行于边缘的切线方向 (即垂直于 $\n I$ 的方向) 进行. 于是得到如下 PDE: $$\bee\label{1:df} I_t=I_{\xi\xi}, \eee$$ 其中 $\xi(\perp \n I)$ 为单位矢量. 我们化简 \eqref{1:d

图像的中值滤波处理

#include<iostream>using namespace std;int main(){ int n,m,i,j,k,o,u,p,a[100][100],x[100][100],max[100][100][20],b[100][100]; cout<<"输入矩阵行列数:"<<endl; cin>>n>>m; cout<<"输入原图像的亮度矩阵:"<<endl; for(i=

iOS使用CoreImage处理图像40中可用的滤镜名称

NSString* localPath = [[NSBundle mainBundle] pathForResource:@"1" ofType:@"jpg"]; NSURL* fileUrl = [NSURL fileURLWithPath:localPath]; CIImage* image = [CIImage imageWithContentsOfURL:fileUrl]; CIContext* context = [CIContext contextWit

log4j的1.2.15版本,在pom.xml中的顶层project报错错误: Failure to transfer javax.jms:jms:jar:1.1 from https://maven-repository.dev.java.net/nonav/repository......

在动态网站工程中,添加了Pom依赖,当添加log4j的1.2.15版本依赖时,在pom.xml中的顶层project报错错误: Failure to transfer javax.jms:jms:jar:1.1 from https://maven-repository.dev.java.net/nonav/repository......,如下图 这是因为 https://maven-repository.dev.java.net/nonav/repository 这个域名已经无法解析了. 而

关于在xml文件中的 error: invalid symbol: &#39;switch&#39; 错误

在xml布局文件中使用Switch控件时,出现error: invalid symbol: 'switch'报错,代码如下: <Switch android:id="@+id/switch" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textOn="开启" android:textOff="关

PHP编程中10个最常见的错误

PHP是一种非常流行的开源服务器端脚本语言,你在万维网看到的大多数网站都是使用php开发的.本篇经将为大家介绍PHP开发中10个最常见的问题,希望能够对朋友有所帮助. 错误1:foreach循环后留下悬挂指针 在foreach循环中,如果我们需要更改迭代的元素或是为了提高效率,运用引用是一个好办法: 1 2 3 4 5 $arr = array(1, 2, 3, 4); foreach ($arr as &$value) {     $value = $value * 2; } // $arr

我在学习编程中犯的两个最大错误

我在学习编程中犯的两个最大错误 投递人 itwriter 发布于 2012-09-10 09:24 评论(13) 有2616人阅读  原文链接  [收藏]  « » 英文原文:Suneel Chakravorty 一年前,我刚从大学毕业并且决定踏入社会.我想出了很多初始的想法并将他们实现,但我不懂编程. 听从 Yipit 联合创始人 Vin Vacant 的建议之后,我开始自学编程. 现在我终于学了足够多的知识来自己实现产品原型,一路走来,非常坎坷.如果你在跟我同样的路上,我希望你能避免犯跟我同

在phpmyadmin中执行sql语句出现的错误:Unknown storage engine &#39;InnoDB&#39;

在phpmyadmin中执行sql语句出现的错误:Unknown storage engine 'InnoDB' 解决方法:解决方法:             1.关闭MySQL数据库       2.修改my.ini文件,把skip-innodb这行注释掉       3.打开MySQL数据库 原因:没有开启MySQL InnoDB存储引擎. 在phpmyadmin中执行sql语句出现的错误:Unknown storage engine 'InnoDB'