opencv的掩模操作(c++) day2

10 篇文章 0 订阅

模板    0   -1    0

           -1    5   -1

            0   -1   0   

#include<opencv2\opencv.hpp>
#include<iostream>
#include<math.h>

using namespace cv;

int main()
{
	Mat src,dst;
	src = imread("aa.jpg");
	if(!src.data)
	{
		printf("加载失败");
		return -1;
	}
	imshow("src",src);
	int cols=src.cols*src.channels();
	int rows=src.rows;
	int offsex=src.channels(); std::cout<<src.rows<<" "<<src.cols;
	dst= Mat(src.size(),src.type());
	double t=getTickCount();
	for(int i= 1;i<rows-1;i++)
	{
		const uchar *previous=src.ptr<uchar>(i-1);
		const uchar *current =src.ptr<uchar>(i);
		const uchar *next =src.ptr<uchar>(i+1);
		uchar *output=dst.ptr<uchar>(i);
		for(int j=offsex;j<cols;j++)
		{
			output[j]=saturate_cast<uchar>(5*current[j]-(current[j-offsex]+current[j+offsex]+previous[j]+next[j]));
		}
	}
	
	/*Mat kernel=(Mat_<char>(3,3)<<0,-1,0,-1,5,-1,0,-1,0);
	filter2D(src,dst,src.depth(),kernel);*/  // opencv 自带的掩模函数
	double timeconsum =(getTickCount()-t)/getTickFrequency();
	printf("time consum %.2fs\n",timeconsum);
	imshow("dst",dst);
	waitKey(0);
	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值