利用OpenCV的函数createTrackbar创建滑动条查看二值化的最优阈值的源码及讲解
图像处理开发需求、图像处理接私活挣零花钱,请加微信/QQ 2487872782
图像处理开发资料、图像处理技术交流请加QQ群,群号 271891601
这个功能的实现其实很简单,主要是要明白createTrackbar函数的使用方法!
先上源码,源码中用到的图像的下载链接为 flower4.jpg_免费高速下载|百度网盘-分享无限制
//OpenCV版本2.4.9 #include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream> int main()
{// 读取图像及验证读入正确cv::Mat srcImage = cv::imread("sea.jpg");if(!srcImage.data) return -1;cv::imshow("srcImage", srcImage);int nRows = srcImage.rows;int nCols = srcImage.cols;//定义仿射变换的二维点数组//源图像和目标图像对应映射的三点cv::Point2f srcPoint[3];cv::Point2f resPoint[3];srcPoint[0] = cv::Point2f(0, 0);srcPoint[1] = cv::Point2f(nCols-1,0 );srcPoint[2] = cv::Point2f(0,nRows-1 );resPoint[0] = cv::Point2f(nCols-1,0 );resPoint[1] = cv::Point2f(0, 0);resPoint[2] = cv::Point2f(nCols-1,nRows-1);// 定义仿射变换矩阵2X3cv::Mat warpMat(cv::Size(2,3),CV_32F);cv::Mat resultImage = cv::Mat::zeros(nRows, nCols, srcImage.type());// 计算仿射变换矩阵,即仿射变换的2*3数组warpMat = cv::getAffineTransform(srcPoint, resPoint); // 根据仿射矩阵计算图像仿射变换cv::warpAffine(srcImage, resultImage,warpMat, resultImage.size());cv::imshow("作仿射变换后的图像",resultImage);cv::waitKey(0);
}
运行结果如下图所示:
拖动滑动条的效果如下图所示:
对于createTrackbar的使用,其实看下面的函数原型就很容易知道怎么使用了:
int createTrackbar(const string& trackbarname, const string& winname,
int* value, int count,
TrackbarCallback onChange = 0,
void* userdata = 0);
图像处理开发需求、图像处理接私活挣零花钱,请加微信/QQ 2487872782
图像处理开发资料、图像处理技术交流请加QQ群,群号 271891601
利用OpenCV的函数createTrackbar创建滑动条查看二值化的最优阈值的源码及讲解相关推荐
- OpenCV删除面积小的区域 实现图像二值化分割 标记连通区域
OpenCV删除面积小的区域 实现图像二值化分割 标记连通区域 [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/781 ...
- OpenCV学习笔记七-创建滑动条
摘要:主要记录滑动条函数使用方法 创建滑动条函数: C++: int createTrackbar(const string& trackbarname, const string& ...
- halcon—利用顶帽操作减轻图像灰度不均匀对二值化的影响
先看原图 由于这副图像的灰度是渐变的,如果直接进行二值化处理的话......,会是这个样子 附上顶帽操作相关介绍顶帽运算和黑帽运算 - 爱码网 (likecs.com) 先使用halcon自带顶帽函数 ...
- matlab利用滑动条控制图片二值化阈值
前言 由于做项目的时候需要对图片进行二值化,而且图片不同需要达到二值化的效果也不同,如果一直要在程序里试探阈值比较麻烦.所以想利用图像界面中的滑动条人工控制二值化阈值. 一.主要步骤 1. 在matl ...
- 利用python opencv实现图像自适应二值化
对灰度图像利用阈值得到一个二值化的图像,是常最常用的图像处理技术之一.例如,灰度大于127的图像设置为1.小于127的设置为0,这种处理便是固定阈值127的二值化处理. 自适应的二值化处理不同于固定阈 ...
- OpenCV二值化--cv2.threshold()函数、cv2.adaptiveThreshold()函数
@[toc] 目录 1.cv2.threshold()函数 2.cv2.adaptiveThreshold()函数 3.3.什么时候用cv2.adaptiveThreshold()函数 一.cv2.t ...
- [转载] python3 opencv 图像二值化笔记(cv2.adaptiveThreshold)
参考链接: python opencv 基础6: cv2.threshold()二值图像 前一篇研究了opencv二值化方法threshold的使用,但是这个方法也存在一定的局限性,假如有一张图存在明 ...
- 二值图像分析:OpenCV中的二值化阈值操作
二值图像分析:OpenCV中的二值化阈值操作 1.二值图像的定义 2.OpenCV中的基本阈值操作 3.OTSU二值寻找算法 3.1 OTSU二值寻找算法介绍 3.2 OTSU二值寻找算法分析 3.2 ...
- python3 opencv 图像二值化笔记(cv2.adaptiveThreshold)
前一篇研究了opencv二值化方法threshold的使用,但是这个方法也存在一定的局限性,假如有一张图存在明显的明暗不同的区域,如下图 可以看到左边部分因为整体偏暗,导致二值化后变成全黑,丢失了所有 ...
最新文章
- Xamarin.Android模拟器提示HAX kernel module is not Installed
- java 使用Spring的JdbcTemplate以及DriverManagerDataSource实现JDBC操作
- oracle 变量赋值_【赵强老师】Oracle存储过程中的out参数
- 关于python中程序流程结构-四、python基础(程序目录结构规范)
- 怎样学好python-如何短时间学习好Python?老男孩Python入门培训
- shiro简单入门介绍
- CodeForces - 1029B.Creating the Contest(最长上升子序列0(n)解法)
- 北斗导航 | 北斗系统信息处理创新技术(学术PPT分享附视频)
- Spring boot项目集成Sharding Jdbc
- 过本命年有什么讲究吗?
- 对待小事情和整理资料------开会心得
- 基于OpenCV的红绿灯识别代码解析
- Ant—如何Windows操作系统中搭建Apache Ant环境
- json学习初体验--第三者jar包实现bean、List、map创json格式
- js切换图片会闪动_javascript 如何实现一个闪烁图片的效果呢?
- 【hbase】解决海量图片存储
- OSI七层模型功能及相关设备
- Debian 启用root账户远程登录并删除多余用户
- Mac电池越来越不给力?教你检查电池健康度
- cf体验服老显示与服务器出现异常,穿越火线体验服出现网络异常
热门文章
- python读取txt文件代码-python批量处理txt文件的实例代码
- python工作好找吗-Python好找工作吗 不看会后悔
- python单词意思-python 前面几个单词含义
- python怎么导入包-Python 包的引入顺序到底是怎样的?
- python代码大全p-基于python实现计算两组数据P值
- python实训项目-Python开发基础-项目实训-在线投票系统.pptx
- 安装tensorflow-gpu2.0 报错:ERROR: Cannot uninstall 'wrapt'
- spring中的BeanFactoryPostProcessor
- spring中事件发布设计与实现
- LeetCode Longest Repeating Character Replacement(滑动窗口)