图像操作之点运算

图像点运算:只改变图像的像素值,不改变图像像素点之间的几何关系。

这就是与图像几何操作的区别了。

转回正题。点运算的理论公式是这样子的:Y=aX+b。Y:新像素值;X:旧像素值;a:变换比例常数;b:常数。

注意一个问题就是 不要让数据溢出。

讨论a,b的值得情况: 

               a=1,b=0,像素值不变,即复制图像;b!=0,所以像素值整体上移或下移,表现的结果系图像变亮或者变暗。

               a>1,对比度拉伸

               a<1,对比度压缩

               a<0,图像求补运算。这里要适当选择b值,因为aX<0,明显不行啦是吧。

觉得求补运算比较有意思,所以写出来看看效果。

贴上关键代码,a取-1,b取255.

	for(j=0;j<Hang;j++)
	{
		for(i=0;i<Lie;i++)
		{
			int tempR,tempG,tempB;
			tempB=buffer[j*Lie*BytesPerPixel+i*BytesPerPixel+0];
			tempG=buffer[j*Lie*BytesPerPixel+i*BytesPerPixel+1];
			tempR=buffer[j*Lie*BytesPerPixel+i*BytesPerPixel+2];
	//		temp=(tempR+tempG+tempB)/3;
	//		temp=a*temp+b;
	//		pDC->SetPixel(i,j,RGB(temp,temp,temp));
			tempB=a*tempB+b;
			tempG=a*tempG+b;
			tempR=a*tempR+b;
			pDC->SetPixel(i,j,RGB(tempR,tempG,tempB));

		}
	}
上图看看效果先:


这是真彩色图像的求补。黑白图像的求补也是很同样道理。

这里提下点运算还可以完成什么操作,

1,阈值化:非常重要,当然也很简单,大于阈值的赋255,小于的赋0。阈值的选取利用图像的频率分布直方图。

2,对比度拉伸(包括分段对比度打算):对0~255整个区域(或者感兴趣的部分区域)利用aX+b进行转换,目的令使用者更容易区分感兴趣的信息。(图像反色也属这个吧)

3,画出轮廓线:这个比较复杂,简单说说工作流程就是先对图像二值化处理,再进行边缘算子检测,再通过4连通或者8连通的方式进行轮廓的提取,最后通过记录起始坐标和连通方向使图像的信息量大大简化,加快处理速度。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值