均值模糊调试遇到的问题
<span style="font-family: KaiTi_GB2312; font-size: 12px; background-color: rgb(255, 255, 255);">内存对齐函数(Core.cpp):</span>
/// <summary>
/// 分配内存函数,以32字节对齐。
/// </summary>
/// <param name="Size">需要使用的内存大小(以字节为单位)。</param>
/// <param name="ZeroMemory">内存数据是否进行清零处理 。</param>
/// <returns>返回所分配内存的指针,失败则返回NULL。</returns>
void *AllocMemory(unsigned int Size, bool ZeroMemory) // https://technet.microsoft.com/zh-cn/library/8z34s9c6
{void *Ptr = _aligned_malloc(Size, 32); //考虑SSE,AVX等高级函数的需求,分配起始地址使用32字节对齐。其实_mm_malloc就是这个函数if (Ptr != NULL && ZeroMemory == true)memset(Ptr, 0, Size);return Ptr;
}
释放内存函数(FreeMemory):
/// <summary>
/// 释放内存。
/// </summary>
/// <param name="Ptr">内存数据的地址。</param>
void FreeMemory(void *Ptr)
{if (Ptr != NULL) _aligned_free(Ptr); // _mm_free就是该函数
}
按照指定的方式扩展各坐标的有理值
/// <summary>
/// 按照指定的边缘模式计算扩展后各坐标的有理值
/// </summary>
/// <param name="Length">原始序列的长度。</param>
/// <param name="Left">左侧需要扩展的长度。</param>
/// <param name="Right">右侧需要扩展的长度。</param>
/// <param name="Edge">边缘扩展的模式。</param>
/// <returns>返回扩展后对应的坐标。</returns>
int *GetExpandPos(int Length, int Left, int Right, EdgeMode Edge)
{if (Left < 0 || Length < 0 || Right < 0) return NULL;//不合适的输入返回NULLint *Pos = (int *)AllocMemory((Left + Length + Right) * sizeof(int), false);//创建大小为(Left+Length+Right)的整形的内存,并不做清零操作if (Pos == NULL) return NULL;//如果内存没有创建成功,就返回NULL。int X, PosX;//X为自变量,变化大小为Left+Length+Right,PosX未知for (X = -Left; X < Length + Right; X++) {if (X < 0) //如果X小于零 //扩展后左侧像素的处理{if (Edge == EdgeMode::Tile) //重复边缘像素Pos[X + Left] = 0; //左侧的部分赋值零,并且坐标由-Left到0变为了0到Left。else //做镜像数据{PosX = -X; //PosX为X取整之后的值,比如最左边为—Left,PosX变为Leftwhile (PosX >= Length) PosX -= Length;// 当这个数值大于原来的长度(扩展前)的时候,PosX=PosX-LengthPos[X + Left] = PosX;}}else if (X >= Length) //如果说X>=Length,也就是说对于扩展后右侧的数据处理{if (Edge == EdgeMode::Tile) //重复边缘像素Pos[X + Left] = Length - 1; //坐标由[Length,Length+Right]变化为[Left+Length,Left+Length+Right],并且赋值为Length-1else //镜像处理{PosX = Length - (X - Length + 2);//while (PosX < 0) PosX += Length;Pos[X + Left] = PosX;}}else //对于原像素的处理,值还是原来的值,坐标变化[0,Length]变化为[Left,Length+Left]{Pos[X + Left] = X;}}return Pos;
}
unsigned char *ColSum, *Diff;
ColSum = (unsigned char *)malloc(Width * Channel * sizeof(unsigned char )); //开辟行内存地址
Diff = (unsigned char *)malloc((Width - 1) * Channel * sizeof(unsigned char ));//开辟行内存地址-1
unsigned char 这样的数据类型:均值模糊的结果
int *ColSum, *Diff;
ColSum = (int *)malloc(Width * Channel * sizeof(int )); //开辟行内存地址
Diff = (int *)malloc((Width - 1) * Channel * sizeof(int ));//开辟行内存地址-1
int型数据类型产生的均值模糊的结果:
均值模糊调试遇到的问题相关推荐
- (12)高斯和均值模糊放到一起
基本的样子展示 ============================= ========================================= 代码展示 =============== ...
- 【Unity Shader】屏幕后处理3.0:均值模糊和高斯模糊
发现之前学习记录的太过详细,导致整理的过程占用太长的时间了,这篇之后博客重要的是掌握实现过程,关于基础的理论会更多的放上别人写得更好的文章. 参考:[Unity Shader编程]之十五 屏幕高斯模糊 ...
- 彻底弄懂高斯模糊,均值模糊和中值模糊
文章目录 一.均值模糊 1.什么是均值模糊 2. 数字化图片演示 3. 真实图片演示 4. 补充:填充方式 二.中值模糊 1. 什么是中值模糊 2. 数字化图片演示 三.高斯模糊 一.均值模糊 1.什 ...
- Python图像增强之高斯模糊、中值模糊、均值模糊
高斯模糊 import cv2def gauss_blur(img, ksize, sigma):'''高斯模糊:param img: 原始图片:param ksize: 高斯内核大小. ksize. ...
- Metal每日分享,均值模糊滤镜效果
本案例的目的是理解如何用Metal实现均值模糊效果滤镜,均值模糊原理其实很简单通过多个纹理叠加,每个纹理偏移量设置不同达到一点重影效果来实现模糊; Demo HarbethDemo地址 实操代码 // ...
- 【OpenCv】图像模糊(均值模糊,高斯模糊,中值模糊,双边模糊)
原理: 图像模糊又称为图像平滑,是图像处理中最简单和常用的操作之一,使用该操作就是为了给图像降低噪音.图像模糊处理包括:高斯模糊.均值滤波.中值滤波.双边滤波等.模糊滤波其实就是图像的卷积计算,通常这 ...
- 图像处理之快速均值模糊(Box Blur)
from:http://blog.csdn.net/jia20003/article/details/7201069 图像模糊的本质, 从数字信号处理的角度看,图像模糊就要压制高频信号保留低频信号, ...
- OpenCV---高斯模糊(均值模糊的另一种)
高斯分布: 高斯模糊的原理 一:图像产生高斯噪声循环代码实现(耗时) def clamp(pv): #使我们的随机值在0-255之间if pv > 255:return 255if pv < ...
- open cv均值 中值 高斯 双边高斯 滤波及模糊
/* 模糊与消噪 模糊原理(线性滤波) ●Smooth/Blur 是图像处理中最简单和常用的操作之一 ●使用该操作的原因之一-就为了给图像预处理时候减低噪声 ●使用Smooth/Blur操作其背后是数 ...
- OpenCV+python:模糊操作
模糊操作是图像处理中最简单和常用的操作之一,使用该操作的原因之一就为了给图像预处理时减低噪声. 模糊操作基于离散卷积计算: g(i,j)=∑k,lf(i+k,j+l)∗h(k,l)g(i,j) = \ ...
最新文章
- 【模板】割点(割顶)
- ARP协议抓包分析 -- wireshark
- linux vnc的小黑点和鼠标不同步_公欲善其事 | VNC的安装和使用
- 快速git本地项目到github的关键命令及执行步骤(附上idea到git的步骤)
- NB-IOT连接移动onenet平台流程
- 题库明细 使用C#开发数据库应用系统
- Multi_thread--Linux下多线程编程互斥锁和条件变量的简单使用
- Cesium学习系列汇总
- S5PV210体系结构与接口04:代码重定位 SDRAM初始化
- SEO优化:WordPress发布文章主动推送到百度,加快收录保护原创
- PHP数据结构之实现链式二叉树与遍历
- 敏捷项目管理之计划扑克游戏
- 全能电子地图下载器-获取离线地图瓦片的工具
- QCC,让在学校的我们感受公司的温暖
- CentOS 7下atime如何变化的问题(转)
- Downward paths
- macos下安装john the ripper并配置zip2john
- 决策引擎EngineX平台实践
- 基于STM32F407标准库串口DMA+空闲中断
- C# 每天定时执行任务(每天凌晨1点执行)
热门文章
- MySQL 浅谈NOT NULL和DEFAULT的关系
- 03. Use const whenever possible
- 计算机图形学全代码,计算机图形学作业参考代码
- matlab脉冲补偿,基于LabVIEW和Matlab的纳秒脉冲测量信号补偿研究
- union all动态表_教你在Power BI中轻松制作动态RFM客户价值模型
- return可以返回多个值_JDK10的新特性:var泛型和多个接口实现
- pygame检测精灵与精灵的碰撞_Pygame(三)--走出黑暗的洞穴(2)
- HTTP:一次完整的HTTP服务过程
- ElementUI:tree给节点添加icon图标
- 最简单的vscode使用入门教程