Opencv之矩阵的掩码操作

本文介绍了在OpenCV中进行矩阵掩码操作的两种方法,包括基本的像素访问和filter2D函数的使用。在像素访问方法中,通过CV_Assert确保图像类型,并创建输出图像,使用指针迭代访问每个通道的像素。而在filter2D函数中,实现了输入图像与核的卷积操作。对于边界处理,文章提出在边界点直接设置为0的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

矩阵的掩码操作很简单。其思想是:根据掩码矩阵(也称作核)重新计算图像中每个像素的值。掩码矩阵中的值表示近邻像素值(包括该像素自身的值)对新像素值有多大影响。从数学观点看,我们用自己设置的权值,对像素邻域内的值做了个加权平均。


实现掩码操作的两种方法


  •  基本的像素访问方法
    void Sharpen(const Mat& myImage,Mat& Result){
    CV_Assert(myImage.depth()== CV_8U);  // 仅接受uchar图像
 
   Result.create(myImage.size(),myImage.type());
    const intnChannels = myImage.channels();
 
    for(int j =1 ; j < myImage.rows-1; ++j)
    {
        constuchar* previous = myImage.ptr<uchar>(j - 1);
        constuchar* current  =myImage.ptr<uchar>(j    );
        constuchar* next     =myImage.ptr<uchar>(j + 1);
 
        uchar*output = Result.ptr<uchar>(j);
 
        for(inti= nChannels;i < nChannel
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值