数字图像处理基本软件VC++实现基本处理功能(一)
来源:互联网 发布:淘宝小镇姗姗模特是谁 编辑:程序博客网 时间:2024/05/17 09:30
义务二:定期公布潜在项目方案和想法,供大家使用
运行界面:
输入图像:可以看到基本功能
一般二值化:
以上:
G(x,y)=HIGH(255白色) f(x,y)>=Threshold
G(x,y)=LOW(0 黑色) f(x,y)< Threshold
以下:
G(x,y)=HIGH(255白色) f(x,y)<=Threshold
G(x,y)=LOW(0 黑色) f(x,y)> Threshold
双阈值二值化:
G(x,y)=HIGH(255白色) f(x,y)>=Threshold_low&&f(x,y)<=Threshold_high
G(x,y)=LOW(0 黑色) 其他情况
边缘检测与提取
由于边缘为灰度值急剧变化的部分,所以微分作为提取函数变化部分的运算能够在边缘检测与提取中利用。
(1) 一阶微分(first differential calculus)也称gradient梯度运算(阶梯状灰度变化)
可以把图像看成二维离散函数,图像梯度其实就是这个二维离散函数的求导:
图像梯度: G(x,y) =dx i + dy j;
dx(i,j) = I(i+1,j) - I(i,j);
dy(i,j) = I(i,j+1) - I(i,j);
其中,I是图像像素的值(如:RGB值),(i,j)为像素的坐标。
图像梯度一般也可以用中值差分:
dx(i,j) = [I(i+1,j) - I(i-1,j)]/2;
dy(i,j) = [I(i,j+1) - I(i,j-1)]/2;
图像边缘一般都是通过对图像进行梯度运算来实现的。
微分值被求出以后,有以下公式就能算出边缘的强度和方向
强度:sqrt(dx^2+ dy^2)
或者:| (dx | + |dy |
方向:向量(dx,dy)的方向
(2) 二阶微分(拉普拉斯运算)
对梯度的再一次微分。只适用于边缘检测的强度(不求方向),在数字图像处理中用下式表示:
L(x,y)=4f(x,y)-|f(x,y-1)+f(x,y+1)+f(x-1,y)+f(x+1,y)|
用相邻像素间的差值近似微分,被称为差分,用于像素间微分运算的系数组被称为微分算子,梯度运算中fx,fy的计算式,以及拉普拉斯运算的式,都是基于这些微分算子二进行微分运算的,实际的微分运算就是计算目标像素及其周围像素,分别乘以微分算子对应的数值矩阵系数的和,其计算结果被用作微分运算后目标像素的灰度值。
本例程还不完善,需带改善。
彩色变换:
(1)彩条制作:RGB的重叠关系
(2) RGB与Y(亮度,相对于灰度图像),色差C1,C2之间的转化:
Y=0.3R+0.59G+0.11B
C1=R-Y=0.7R-0.59G-0.11B
C2=B-Y=-0.3R-0.59G+0.89B
有亮度,色差求RGB:
R=Y+C1;
G=Y-(0.3/0.9)*C1-(0.11/0.59)*C2;
B=Y+C2;
色差与色调,饱和度之间的关系:
色调H表示以色差信号B-Y(即C2)
为基准的坐标轴开始旋转了多少角度;
其中饱和度S表示离开原点多大距离。
H=actan(C1/C2);
S=sqrt(C1^2+C2^2);
逆变换为;
C1=S*sinH;
C2=S*cosH;
(4)色调变灰度图像;()
(3)chroma key信号,从拍摄的蓝色背景前站立着人物的图像中,分理处蓝色的背景部分,做成用于合成的硬键信号。
在实际的chroma key中,不仅可以用蓝色,还可以用其他颜色作为背景来提取,自然图像合成中有各种各样的技巧,可以使用简单的图像处理来试一试类似chroma key的效果,
如:利用 (R+G)/2-B用这个值的大小来提取蓝色的。蓝色时这个值为负数,也就意味着这个值越小越接近蓝色。
- 数字图像处理基本软件VC++实现基本处理功能(一)
- 数字图像处理基本软件VC++实现基本处理功能 (二)
- 数字图像处理-基本知识点(一)
- 数字图像基本处理算法
- 数字图像基本处理算法
- 数字图像基本处理算法
- 数字图像基本处理算法
- MATLAB数字图像处理(一)图像的基本操作
- 数字图像处理基本知识点1(冈萨雷斯)
- 数字图像处理的基本步骤
- 数字图像处理基本问题清单
- 数字图像处理matlab基本命令
- 数字图像处理基本算法实现(1)--section3.2基本灰度变换
- 数字图像处理基本算法实现(2)--section3.3直方图处理
- 数字图像处理基本算法实现(3)--section3.5-6空间滤波处理
- (转)VC数字图像处理编程讲座之三 ---BMP图像的基本操作
- 数字图像处理(一)
- python数字图像处理(12):基本图形的绘制
- 如何存放好病毒
- linux下打包解包
- makefile :missing seprator
- 【Android代码片段之四】设置全屏
- 数据结构笔记--顺序表
- 数字图像处理基本软件VC++实现基本处理功能(一)
- 筛法筛素数
- 入职一周的展讯笔记
- __declspec 等关键字的全写
- 2 SEO关键词和长尾关键词的分析!
- 常用开源<监控软件>介绍1
- fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "stdafx.h
- XCode、Objective-C、Cocoa !!!
- 开发CPU需要哪些知识