图像处理开发需求、图像处理接私活挣零花钱,请加微信/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创建滑动条查看二值化的最优阈值的源码及讲解相关推荐

  1. OpenCV删除面积小的区域 实现图像二值化分割 标记连通区域

    OpenCV删除面积小的区域 实现图像二值化分割 标记连通区域    [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/781 ...

  2. OpenCV学习笔记七-创建滑动条

    摘要:主要记录滑动条函数使用方法 创建滑动条函数: C++: int createTrackbar(const string& trackbarname, const string& ...

  3. halcon—利用顶帽操作减轻图像灰度不均匀对二值化的影响

    先看原图 由于这副图像的灰度是渐变的,如果直接进行二值化处理的话......,会是这个样子 附上顶帽操作相关介绍顶帽运算和黑帽运算 - 爱码网 (likecs.com) 先使用halcon自带顶帽函数 ...

  4. matlab利用滑动条控制图片二值化阈值

    前言 由于做项目的时候需要对图片进行二值化,而且图片不同需要达到二值化的效果也不同,如果一直要在程序里试探阈值比较麻烦.所以想利用图像界面中的滑动条人工控制二值化阈值. 一.主要步骤 1. 在matl ...

  5. 利用python opencv实现图像自适应二值化

    对灰度图像利用阈值得到一个二值化的图像,是常最常用的图像处理技术之一.例如,灰度大于127的图像设置为1.小于127的设置为0,这种处理便是固定阈值127的二值化处理. 自适应的二值化处理不同于固定阈 ...

  6. OpenCV二值化--cv2.threshold()函数、cv2.adaptiveThreshold()函数

    @[toc] 目录 1.cv2.threshold()函数 2.cv2.adaptiveThreshold()函数 3.3.什么时候用cv2.adaptiveThreshold()函数 一.cv2.t ...

  7. [转载] python3 opencv 图像二值化笔记(cv2.adaptiveThreshold)

    参考链接: python opencv 基础6: cv2.threshold()二值图像 前一篇研究了opencv二值化方法threshold的使用,但是这个方法也存在一定的局限性,假如有一张图存在明 ...

  8. 二值图像分析:OpenCV中的二值化阈值操作

    二值图像分析:OpenCV中的二值化阈值操作 1.二值图像的定义 2.OpenCV中的基本阈值操作 3.OTSU二值寻找算法 3.1 OTSU二值寻找算法介绍 3.2 OTSU二值寻找算法分析 3.2 ...

  9. python3 opencv 图像二值化笔记(cv2.adaptiveThreshold)

    前一篇研究了opencv二值化方法threshold的使用,但是这个方法也存在一定的局限性,假如有一张图存在明显的明暗不同的区域,如下图 可以看到左边部分因为整体偏暗,导致二值化后变成全黑,丢失了所有 ...

最新文章

  1. Xamarin.Android模拟器提示HAX kernel module is not Installed
  2. java 使用Spring的JdbcTemplate以及DriverManagerDataSource实现JDBC操作
  3. oracle 变量赋值_【赵强老师】Oracle存储过程中的out参数
  4. 关于python中程序流程结构-四、python基础(程序目录结构规范)
  5. 怎样学好python-如何短时间学习好Python?老男孩Python入门培训
  6. shiro简单入门介绍
  7. CodeForces - 1029B.Creating the Contest(最长上升子序列0(n)解法)
  8. 北斗导航 | 北斗系统信息处理创新技术(学术PPT分享附视频)
  9. Spring boot项目集成Sharding Jdbc
  10. 过本命年有什么讲究吗?
  11. 对待小事情和整理资料------开会心得
  12. 基于OpenCV的红绿灯识别代码解析
  13. Ant—如何Windows操作系统中搭建Apache Ant环境
  14. json学习初体验--第三者jar包实现bean、List、map创json格式
  15. js切换图片会闪动_javascript 如何实现一个闪烁图片的效果呢?
  16. 【hbase】解决海量图片存储
  17. OSI七层模型功能及相关设备
  18. Debian 启用root账户远程登录并删除多余用户
  19. Mac电池越来越不给力?教你检查电池健康度
  20. cf体验服老显示与服务器出现异常,穿越火线体验服出现网络异常

热门文章

  1. python读取txt文件代码-python批量处理txt文件的实例代码
  2. python工作好找吗-Python好找工作吗 不看会后悔
  3. python单词意思-python 前面几个单词含义
  4. python怎么导入包-Python 包的引入顺序到底是怎样的?
  5. python代码大全p-基于python实现计算两组数据P值
  6. python实训项目-Python开发基础-项目实训-在线投票系统.pptx
  7. 安装tensorflow-gpu2.0 报错:ERROR: Cannot uninstall 'wrapt'
  8. spring中的BeanFactoryPostProcessor
  9. spring中事件发布设计与实现
  10. LeetCode Longest Repeating Character Replacement(滑动窗口)