几个入门的简单程序,和对应的CMakeList, 虽然简单重新测一下写一下也是好的。

CMake教程传送门

图像显示

ShowImage.cxx

#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgcodecs/imgcodecs.hpp> int main(){
cv::Mat srcImage = cv::imread("1.jpg");
imshow("Original Image", srcImage);
cv::waitKey();
return ;
}

CMakeLists.txt

cmake_minimum_required (VERSION 2.8)
project (ShowImage) find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} ) # add the executable
add_executable (ShowImage ShowImage.cxx)
target_link_libraries(ShowImage opencv_core opencv_highgui opencv_imgcodecs)

图像腐蚀

ErodeImage.cxx

#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgcodecs/imgcodecs.hpp>
#include <opencv2/imgproc/imgproc.hpp> int main(){
// read image
cv::Mat srcImage = cv::imread("1.jpg"); // show original image
imshow("Original Image", srcImage); // erode image
cv::Mat element = getStructuringElement(cv::MORPH_RECT, cv::Size(,));
cv::Mat dstImage;
erode(srcImage, dstImage, element); // show results
imshow("Image Erosion", dstImage);
cv::waitKey();
return ;
}

CMakeList.txt

cmake_minimum_required (VERSION 2.8)
project (ErodeImage) # find OpenCV packages
find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} ) # add the executable
add_executable (ErodeImage ErodeImage.cxx)
target_link_libraries(ErodeImage opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs)

图像模糊

BlurImage.cxx

#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgcodecs/imgcodecs.hpp>
#include <opencv2/imgproc/imgproc.hpp> int main(){
// read image
cv::Mat srcImage = cv::imread("1.jpg"); // show original image
imshow("Original Image", srcImage); // blur image
cv::Mat dstImage;
blur(srcImage, dstImage, cv::Size(,)); // show results
imshow("Image Blurring", dstImage);
cv::waitKey();
return ;
}

CMakeList.txt

cmake_minimum_required (VERSION 2.8)
project (BlurImage) # find OpenCV packages
find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} ) # add the executable
add_executable (BlurImage BlurImage.cxx)
target_link_libraries(BlurImage opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs)

Canny边缘检测

CannyEdgeDetection.cxx

#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgcodecs/imgcodecs.hpp>
#include <opencv2/imgproc/imgproc.hpp> int main(){
// read image
cv::Mat srcImage = cv::imread("1.jpg"); // show original image
imshow("Original Image", srcImage); // blur image
cv::Mat dstImage, edge, grayImage; // create a matrix the same size as srcImage
dstImage.create(srcImage.size(), srcImage.type()); // convert color image to gray-scale image
// OpenCV2
// cv::cvtColor(srcImage, grayImage, cv::CV_BGR2GRAY);
// OpenCV3
cv::cvtColor(srcImage, grayImage, cv::COLOR_BGR2GRAY); // denoising
blur(srcImage, dstImage, cv::Size(,)); // apply Canny operator
Canny( dstImage, edge, , , ); // show results
imshow("Canny Edge Detection", edge);
cv::waitKey();
return ;
}

CMakeList.txt

cmake_minimum_required (VERSION 2.8)
project (CannyEdgeDetection) # find OpenCV packages
find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} ) # add the executable
add_executable (CannyEdgeDetection CannyEdgeDetection.cxx)
target_link_libraries(CannyEdgeDetection opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs)

图像处理简单实例[OpenCV 笔记1]的更多相关文章

  1. 视频处理简单实例 [OpenCV 笔记2]

    VideoCapture是OpenCV 2.X中新增的类,提供从摄像机或视频文件捕获视频的C++接口.利用它读入视频的方法一般有两种: // method 1 VideoCapture capture ...

  2. 图像显示 imshow()[OpenCV 笔记5]

    void imshow(const string& winname InputArray mat); winname 窗口表识名称 mat 需要显示的图像.InputArray类型,声明如下 ...

  3. 实例:图形绘制[OpenCV 笔记15]

    DrawShapes.cxx # include "DrawShapes_utils.h" #define WINDOW_NAME1 "Painting 1" ...

  4. 实例:图像载入、显示、混合与输出[OpenCV 笔记8]

    是的是的,忍着尿意努力更新,就是为了更到wuli男神的部分,当然要把男神放在前面镇楼,欢迎下载配图,具体操作见code wuliEddie.jpg logo.png results.jpg LoadS ...

  5. OpenCV基本架构[OpenCV 笔记0]

    最近正在系统学习OpenCV,将不定期发布笔记,主要按照毛星云的<OpenCV3编程入门>的顺序学习,会参考官方教程和文档.学习工具是Xcode+CMake,会对书中一部分内容更正,并加入 ...

  6. 访问图像中的像素[OpenCV 笔记16]

    再更一发好久没更过的OpenCV,不过其实写到这个部分对计算机视觉算法有所了解的应该可以做到用什么查什么了,所以后面可能会更的慢一点吧,既然开了新坑,还是机器学习更有研究价值吧... 图像在内存中的存 ...

  7. 查找并绘制轮廓[OpenCV 笔记XX]

    好久没有更新了,原谅自己放了个假最近又在赶进度,所以...更新的内容是很靠后的第八章,因为最近工作要用就先跳了,后面会更新笔记编号...加油加油! 在二值图像中寻找轮廓 void cv::findCo ...

  8. 滑动条 Trackbar[OpenCV 笔记9]

    OpenCV中没有实现按钮的功能,我们可以利用滑动条来实现按钮功能. , ); trackbarname 轨迹条的名字. winname 窗口的名字,轨迹条会依附在这个窗口上. value 一个指向整 ...

  9. 输出图像到文件 imwrite()[OpenCV 笔记7]

    bool imwrite(const string& filename, InputArray img, const vector<int>& params=vector& ...

随机推荐

  1. struts1与strut2的区别

    struts1和struts2是两个完全不同的框架 struts1工作流程:发布Struts Web服务时,根据web.xml初始化ActionServlet,ActionContext等内容.在接到 ...

  2. Apache Commons 工具集使用简介

    Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动.我选了一些比较常用的项目做简单介绍.文中用了很多网上现成的东西,我只是做了一个汇总整理. 一.Comm ...

  3. __attribute__机制介绍 (转)

    1. __attribute__ GNU C的一大特色(却不被初学者所知)就是__attribute__机制. __attribute__可以设置函数属性(Function Attribute).变量 ...

  4. 如何运用同余定理求余数【hdoj 1212 Big Number【大数求余数】】

    Big Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

  5. myEclipse和eclipse修改或复制项目名称后-更新部署名称

    一.myEclipse 复制后修改名称,访问不到项目 这是因为,你只是改了项目的名称,而没有改 下面是解决方法: 方法 1.右击你的项目,选择“properties”,在“type filter te ...

  6. Plinq-Parallel.ForEach for 性能提升

    https://msdn.microsoft.com/zh-cn/library/dd460720.aspx 本示例显示如何使用 Parallel.ForEach 循环对任何 System.Colle ...

  7. CAS+SSO原理浅谈

    http://www.cnblogs.com/yonsin/archive/2009/08/29/1556423.htmlSSO 是一个非常大的主题,我对这个主题有着深深的感受,自从广州 UserGr ...

  8. 《Linux内核设计与实现》学习笔记之“Linux进程管理机制”

    一.进程(或者称为“任务”)简介 进程是OS最基本的抽象之一,通常进程包括“可执行程序代码”,“其他资源”(如:打开的文件,挂起的信号,内核内部数据,处理器状态,地址空间,一个或多个执行线程等) 二. ...

  9. Android 解决双卡双待手机解析短信异常

    开发中,难免会遇到各种各样的适配问题,尤其是经过深度修改定制过的系统,有的无论是软硬件上都有很大的区别,这里不得不提到一种奇葩的机型,没错,那就是双卡双待的手机(比如XT800, A60, S8600 ...

  10. STL algorithm算法merge(34)

    merge原型: std::merge default (1) template <class InputIterator1, class InputIterator2, class Outpu ...