// Basic_OpenCV_2.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include <iostream>
#include "cv.h"
#include "highgui.h" using namespace std; void SmoothImage(IplImage* image)//平滑函数
{
cvNamedWindow("Smooth_in");
cvNamedWindow("Smooth_out");
cvShowImage("Smooth_in",image); IplImage* out = cvCreateImage(cvGetSize(image),IPL_DEPTH_8U,3);
cvSmooth(image,out,CV_BLUR,32,32);//平滑函数,后面两个参数是窗口大小
cvShowImage("Smooth_out",out); cvReleaseImage(&out); cvWaitKey(0);
cvDestroyAllWindows();
} void doPyrDown(IplImage* in, int filter = IPL_GAUSSIAN_5x5)//图像缩小为一半
{
//Best to make sure input image is divisible by two.
assert(in->width%2 == 0 && in->height%2 == 0);
IplImage* out = cvCreateImage(cvSize(in->width/2 , in->height/2) , in->depth , in->nChannels);
cvPyrDown(in , out); cvNamedWindow("PyrDown_out");
cvShowImage("PyrDown_out",out);
cvReleaseImage(&out); cvWaitKey(0);
cvDestroyAllWindows();
//return out; } void doCanny(IplImage* in , double lowThresh , double highThresh , double aperture)
{
IplImage* out = cvCreateImage(cvSize(in->width,in->height) , IPL_DEPTH_8U , 1);
if(in->nChannels != 1)
{
//cout<<"error! unsupported format or combination of formats() in unknown function"<<endl;
//return;//canny only handles gray scale image //若不是灰度图,直接转化成灰度图
IplImage* gray = cvCreateImage(cvGetSize(in), IPL_DEPTH_8U, 1);
cvCvtColor(in, gray, CV_BGR2GRAY);
out = gray;
} cvCanny(in , out , lowThresh , highThresh , aperture ); cvNamedWindow("Canny_out");
cvShowImage("Canny_out",out);
cvReleaseImage(&out); cvWaitKey(0);
cvDestroyAllWindows(); } int _tmain(int argc, _TCHAR* argv[])
{
IplImage* image = cvLoadImage("lena.jpg");
//SmoothImage(image);
//doPyrDown(image);
doCanny(image ,10 , 100 , 3 ); system("pause");
return 0;
}

opencv基本图像操作的更多相关文章

  1. openCV - 4. 图像操作

    读写图像.读写像素.修改像素值 读写图像 imread 可以指定加载为灰度或者RGB图像 Imwrite 保存图像文件,类型由扩展名决定 读写像素 读一个GRAY像素点的像素值(CV_8UC1) Sc ...

  2. Opencv中图像的遍历与像素操作

    Opencv中图像的遍历与像素操作 OpenCV中表示图像的数据结构是cv::Mat,Mat对象本质上是一个由数值组成的矩阵.矩阵的每一个元素代表一个像素,对于灰度图像,像素是由8位无符号数来表示(0 ...

  3. python进阶—OpenCV之常用图像操作函数说明(转)

    文章目录cv2.thresholdcv2.bitwise_andcv2.bitwise_orcv2.bitwise_notcv2.inRangecv2.resizecv2.adaptiveThresh ...

  4. 使用OpenCV读、操作、写图像并与bash合作对某个目录下所有图像进行类似处理

    我门要对某个目录下所有图像文件进行统一处理,如果图像的数量过多,那么手动地一张张处理就会显得有些麻烦.本文使用OpenCV和bash来完成我们指定的任务. 任务 将目录A下的所有统一格式的jpg图像变 ...

  5. 使用OpenCV读、操作、写图像并与bash合作对某个文件夹下全部图像进行相似处理

    我门要对某个文件夹下全部图像文件进行统一处理,假设图像的数量过多.那么手动地一张张处理就会显得有些麻烦.本文使用OpenCV和bash来完毕我们指定的任务. 任务 将文件夹A下的全部统一格式的jpg图 ...

  6. Python用Pillow(PIL)进行简单的图像操作

    Python用Pillow(PIL)进行简单的图像操作 颜色与RGBA值 计算机通常将图像表示为RGB值,或者再加上alpha值(通透度,透明度),称为RGBA值.在Pillow中,RGBA的值表示为 ...

  7. Java基于opencv实现图像数字识别(一)

    Java基于opencv实现图像数字识别(一) 最近分到了一个任务,要做数字识别,我分配到的任务是把数字一个个的分开:当时一脸懵逼,直接百度java如何分割图片中的数字,然后就百度到了用Buffere ...

  8. 学习笔记TF015:加载图像、图像格式、图像操作、颜色

    TensorFlow支持JPG.PNG图像格式,RGB.RGBA颜色空间.图像用与图像尺寸相同(height*width*chnanel)张量表示.通道表示为包含每个通道颜色数量标量秩1张量.图像所有 ...

  9. OpenCV中图像算术操作与逻辑操作

    OpenCV中图像算术操作与逻辑操作 在图像处理中有两类最重要的基础操作各自是图像点操作与块操作.简单点说图像点操作就是图像每一个像素点的相关逻辑与几何运算.块操作最常见就是基于卷积算子的各种操作.实 ...

随机推荐

  1. 指令汇B新闻客户端开发(二) 主页面布局

    这个主页面采用了一个开源框架SlidingMenu,这个可以在git上面下载.把这些下载下来的文件import我们的eclipse中,用我们的项目去加载这个library,在这个过程中很有可能会报错, ...

  2. 01_Eclipse的使用方法

     1 选择工作站 Workspace:表示工作站 2 切换工作站 选择工作站的方式:File->SwitchWorkspace 这里选择其他的工作站 清除工作站的方式: 找到MyEclips ...

  3. SQL Server SA 最佳实践(也许不仅仅是翻译)

    老实说,本文主要部分是翻译的,并且由于英语水平的问题,我没有完全翻译,有些我觉得不重要的就跳过了,目前看来应该八九不离十,或者说不会影响最终效果,对于英语水平好的读者,可以自行查看原文.但这一年里面我 ...

  4. 单幅图像的深度学习,对NYU数据集进行划分

    针对分割问题,官方已经划分好了:http://cs.nyu.edu/~silberman/projects/indoor_scene_seg_sup.html import numpy as np i ...

  5. 06 Activity显示跳转

    <span style="font-size:18px;">package com.fmy.day8_29task; import com.fmy.day8_29tas ...

  6. 1049. Counting Ones (30)

    题目如下: The task is simple: given any positive integer N, you are supposed to count the total number o ...

  7. Android学习笔记之AppWidget

    什么是AppWidget?AppWidget就是我们平常在桌面上见到的那种一个个的小窗口,利用这个小窗口可以给用户提供一些方便快捷的操作. 今天的目标就是怎么创建一个简单的AppWidget. 首先我 ...

  8. 最简单的基于FFmpeg的AVDevice例子(读取摄像头)

    =====================================================最简单的基于FFmpeg的AVDevice例子文章列表: 最简单的基于FFmpeg的AVDev ...

  9. 分析比较KafkaWordCount及DierctKafkaWordCount

    参考spark官方文档,Spark Streaming + Kafka Integration Guide,其中提到Spark Streaming如何从Kafka中接收数据.主要有两种方法,一种是使用 ...

  10. Dynamics CRM 2013 停用和激活按钮的显示与隐藏

    CRM中命令栏上的有些按钮是可以通过权限控制显示和隐藏的,比如新建.保存.保存并关闭.删除等,但惟独激活和停用无法控制,但我们还是可以用权限去控制,只是稍微绕了那么一下. 这里就要涉及到按钮的自定义了 ...