opencv学习笔记(05)——操作相邻区域
下面的例子以灰度图像为例:
#include <opencv2\highgui\highgui.hpp>
#include <opencv2\imgproc\imgproc.hpp>
#include <opencv2\core\core.hpp> using namespace cv; void sharpen(const cv::Mat& img_original, cv::Mat& img_altered); void sharpen2D(const cv::Mat& img_original, cv::Mat& img_altered); int main()
{ cv::Mat img_original = cv::imread("F:\\images\\boldt.jpg", cv::IMREAD_GRAYSCALE );
cv::Mat img_altered = img_original.clone(); // 锐化
sharpen2D(img_original, img_altered); cv::namedWindow("orignal");
cv::imshow("orignal", img_original);
cv::namedWindow("altered");
cv::imshow("altered", img_altered); cv::waitKey(); return ;
} void sharpen(const cv::Mat& img_original, cv::Mat& img_altered)
{ int nc = img_original.cols;
int nl = img_original.rows; for(int j=; j<nl-; j++)
{
const uchar* previous = img_original.ptr<const uchar>(j-);
const uchar* current = img_original.ptr<const uchar>(j);
const uchar* next = img_original.ptr<const uchar>(j+); uchar* output = img_altered.ptr<uchar>(j); for(int i=; i<nc-; i++)
{
*output++ = saturate_cast<uchar>( * current[i] - previous[i] - next[i] - current[i-] - current[i+] );
}
} img_altered.row().setTo(cv::Scalar());
img_altered.row(nl-).setTo(cv::Scalar());
img_altered.col().setTo(cv::Scalar());
img_altered.col(nc-).setTo(cv::Scalar()); } void sharpen2D(const cv::Mat& img_original, cv::Mat& img_altered)
{
Mat kernel(, , CV_32F, cv::Scalar());
kernel.at<float>(,) = - 1.0;
kernel.at<float>(,) = - 1.0;
kernel.at<float>(,) = - 1.0;
kernel.at<float>(,) = - 1.0;
kernel.at<float>(,) = 5.0; //Mat_<cv::Scalar> kernel2 = kernel;
//kernel2(0,1) = -1.0;
//kernel2(1,0) = -1.0;
//kernel2(1,2) = -1.0;
//kernel2(2,1) = -1.0;
//kernel2(1,1) = 5.0; cv::filter2D(img_original, img_altered, img_original.depth(), kernel); }
下面是彩色图像的例子:
opencv学习笔记(05)——操作相邻区域的更多相关文章
- OpenCV 学习笔记 05 人脸检测和识别
本节将介绍 Haar 级联分类器,通过对比分析相邻图像区域来判断给定图像或子图像与已知对象是否匹配. 本章将考虑如何将多个 Haar 级联分类器构成一个层次结构,即一个分类器能识别整体区域(如人脸) ...
- OpenCV 学习笔记 05 级联分类器CascadeClassifier类
在人脸检测中,CascadeClassifier 是一个类,该类的作用是(基于官方已经训练好的数据文件 .xml)实例化一个检测器. 1 类 CascadeClassifier 的概述 首先看一下该类 ...
- OpenCV 学习笔记 05 人脸检测和识别 AttributeError: module 'cv2' has no attribute 'face'
1 环境设置: win10 python 3.6.8 opencv 4.0.1 2 尝试的方法 在学习人脸识别中,遇到了没有 cv2 中没有 face 属性.在网上找了几个方法,均没有成功解决掉该问题 ...
- OpenCV 学习笔记 07 目标检测与识别
目标检测与识别是计算机视觉中最常见的挑战之一.属于高级主题. 本章节将扩展目标检测的概念,首先探讨人脸识别技术,然后将该技术应用到显示生活中的各种目标检测. 1 目标检测与识别技术 为了与OpenCV ...
- 【opencv学习笔记六】图像的ROI区域选择与复制
图像的数据量还是比较大的,对整张图片进行处理会影响我们的处理效率,因此常常只对图像中我们需要的部分进行处理,也就是感兴趣区域ROI.今天我们来看一下如何设置图像的感兴趣区域ROI.以及对ROI区域图像 ...
- OpenCV 学习笔记03 边界框、最小矩形区域和最小闭圆的轮廓
本节代码使用的opencv-python 4.0.1,numpy 1.15.4 + mkl 使用图片为 Mjolnir_Round_Car_Magnet_300x300.jpg 代码如下: impor ...
- opencv学习笔记(三)基本数据类型
opencv学习笔记(三)基本数据类型 类:DataType 将C++数据类型转换为对应的opencv数据类型 OpenCV原始数据类型的特征模版.OpenCV的原始数据类型包括unsigned ch ...
- opencv学习笔记(二)寻找轮廓
opencv学习笔记(二)寻找轮廓 opencv中使用findContours函数来查找轮廓,这个函数的原型为: void findContours(InputOutputArray image, O ...
- opencv学习笔记(一)IplImage, CvMat, Mat 的关系
opencv学习笔记(一)IplImage, CvMat, Mat 的关系 opencv中常见的与图像操作有关的数据容器有Mat,cvMat和IplImage,这三种类型都可以代表和显示图像,但是,M ...
- OpenCV 学习笔记03 findContours函数
opencv-python 4.0.1 1 函数释义 词义:发现轮廓! 从二进制图像中查找轮廓(Finds contours in a binary image):轮廓是形状分析和物体检测和识别的 ...
随机推荐
- iOS - UI - UISwitch
UISwitch //开关 不用设置宽高 有默认宽高 UISwitch * sw = [[UISwitch alloc] initWithFrame:CGRectMake(100, 100, ...
- hdu 4412 利用单调性的动态规划
思路: 这题和1227的求法一样,只不过1227是小数据,暴力下,就能进行预处理. 这题的预处理区间期望cost[i][j]需要利用单调性. 即假使以pos位置为安排的点,那么这个区间在其左边的概率为 ...
- Android渠道汇总
序号 渠道名 渠道说明 特殊渠道 1 googleplay google市场 2 umeng 自动更新 3 office_web 官方网络 4 office_qrcode 官方二维码 硬件 ...
- Python15-day1课后作业
功能:编写一个用户登录接口 要求:1)根据提示输入用户名.密码信息 2)输入的用户.密码正确则显示欢迎信息 3)连续三次输入错误则锁定账号 #coding=utf-8import sys,os,get ...
- UI设计之PS界面初始化设置
一.PS界面初始化 1.新建设置 web设计的基础标准:宽度为1920px,高度自定义,分辨率72px,背景模式RGB 8位.(提示:可以“存为预设”以便以后直接调用) 注意:背景内容为透明!!! ...
- hdu 5444 Elven Postman(二叉树)——2015 ACM/ICPC Asia Regional Changchun Online
Problem Description Elves are very peculiar creatures. As we all know, they can live for a very long ...
- openquery链表删除时报错 “数据提供程序或其他服务返回 E_FAIL 状态”
DELETE OPENQUERY (VERYEAST_COMPANY_MYSQL_CONN, 'SELECT * FROM company ') WHERE c_userid in(select c_ ...
- redistribute_prefix
使用分发列表和前缀列表控制路由 拓扑如下 将基本环境(ip和路由协议)配置好,所得到的各个路由表如下 R1: R2: R3: EIGRP和OSPF间的双向重分发 1. 在R2上做重分发 2. ...
- C#颜色 转换
C#Winform 使用16进制颜色 var color = ColorTranslator.FromHtml("#eeeeee");
- Windows Phone 7 ListBox 列表项渐显加载动画学习笔记
在wp7程序中,当程序功能越来越复杂时,性能问题是我们不得不考虑的一个问题.在聊天列表中,如果聊天项过多,而且项目UI组件足够复杂时, 我们不得不想尽办法让UI尽快加载.所以有一种可行的方案,就是像Q ...