#include<iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv/cv.hpp>
void sharpen(const cv::Mat &image, cv::Mat &result){
//如有必要则分配图像
result.create(image.size(), image.type());
for (int j = 1; j < image.rows - 1; j++) //处理除了第一行和最后一行之外的所有行
{
const uchar* previous = image.ptr<const uchar>(j - 1); //上一行
const uchar* current = image.ptr<const uchar>(j); //当前行
const uchar* next = image.ptr<const uchar>(j + 1); //下一行
uchar* output = result.ptr<uchar>(j); //输出行
for (int i = 1; i < image.cols - 1; i++)
{
*output++ = cv::saturate_cast<uchar>(5 * current[i] - current[i - 1] - current[i + 1] - previous[i] - next[i]);
}
}
//将未处理的像素设置为0
result.row(0).setTo(cv::Scalar(0));
result.row(result.rows - 1).setTo(cv::Scalar(0));
result.col(0).setTo(cv::Scalar(0));
result.col(result.cols - 1).setTo(cv::Scalar(0));
}
//OpenCV定义了一个特殊的函数来完成滤波处理:cv::filter2D 我们利用它来重写图像锐化函数:
void sharpen2D(const cv::Mat&image, cv::Mat &result){
//构造核(所有项都初始化为0)
cv::Mat kernel(3, 3, CV_32F, cv::Scalar(0));
//对核元素进行赋值
kernel.at<float>(1, 1) = 5.0;
kernel.at<float>(0, 1) = -1.0;
kernel.at<float>(2, 1) = -1.0;
kernel.at<float>(1, 0) = -1.0;
kernel.at<float>(1, 2) = -1.0;
//对图像进行滤波
cv::filter2D(image, result, image.depth(), kernel);
}
void main261(){
//装载图像
cv::Mat image = cv::imread("gray.jpg");
cv::Mat result;
//处理图像
//sharpen(image, result);
sharpen2D(image, result);
//显示图像
cv::namedWindow("Image");
cv::imshow("Image", result);
cv::waitKey(0);
}
没有合适的资源?快使用搜索试试~ 我知道了~
【OpenCV学习笔记 005】 操作像素
共18个文件
cpp:6个
jpg:5个
sdf:1个
需积分: 10 8 下载量 14 浏览量
2016-10-01
22:50:15
上传
评论
收藏 3.23MB RAR 举报
温馨提示
爱分享、爱极客的编程怪兽--DaveBobo 博文 《【OpenCV学习笔记 005】 操作像素》 博文链接: http://blog.csdn.net/davebobo/article/details/52541612 OpenCV版本:2.4.9
资源推荐
资源详情
资源评论
收起资源包目录
【OpenCV学习笔记 005】 操作像素.rar (18个子文件)
【OpenCV学习笔记 005】 操作像素
【OpenCV学习笔记 005】 操作像素.v12.suo 24KB
Debug
【OpenCV学习笔记 005】 操作像素.sdf 15.63MB
【OpenCV学习笔记 005】 操作像素
【OpenCV学习笔记 005】 操作像素.vcxproj.filters 1KB
lol.jpg 63KB
Debug
【OpenCV学习笔记 005】 操作像素.log 95B
【OpenCV学.23FF676A.tlog
2.3使用指针遍历图像.cpp 1KB
【OpenCV学习笔记 005】 操作像素.vcxproj 5KB
2.7进行简单的图像算术.cpp 821B
【OpenCV学习笔记 005】 操作像素.vcxproj.user 165B
2.2存取像素值.cpp 739B
gray.jpg 23KB
2.6遍历图像和邻域操作.cpp 2KB
logo.jpg 12KB
2.4使用迭代器遍历图像.cpp 780B
picture.jpg 19KB
2.8定义感兴趣区域.cpp 981B
rain.jpg 63KB
【OpenCV学习笔记 005】 操作像素.sln 1KB
共 18 条
- 1
资源评论
DaveBobo
- 粉丝: 743
- 资源: 52
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- springboot与mybatis整合的查询
- 电子通信设计资料使用单片机制作的毫欧表
- java面向对象的基本知识,封装继承多态等
- IM4546G-VB一款N+P-Channel沟道SOP8的MOSFET晶体管参数介绍与应用说明
- 电子通信设计资料射频模块nRF9E5在污水数据监测系统中的应用
- IM4510G-VB一款2个P-Channel沟道SOP8的MOSFET晶体管参数介绍与应用说明
- 基于python的爬虫教程.docx
- 电子通信设计资料射频SoCnRF9E5及无线数据传输系统的实现
- 开发文档.docx
- IM4118G-VB一款P-Channel沟道SOP8的MOSFET晶体管参数介绍与应用说明
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功