opencv初识
来源:互联网 发布:php抓取页面内容 编辑:程序博客网 时间:2024/06/06 02:19
1、创建一个100*100的3通道图像,先把图设置成黑色,再用cvCircle画一个圆,最后显示之。
#include "stdafx.h"#include <cv.h>#include <cxcore.h>#include <highgui.h>#include <stdlib.h>int _tmain(int argc, _TCHAR* argv[]){//IPlImage * img = cvCreatMat(IplImage * img = cvCreateImage( cvSize(100,100), IPL_DEPTH_8U, 3);//创建一个IplImage对象,尺寸100*100,字节型,3通道cvZero(img);//将像素值全部置为0cvCircle(img,cvPoint(50,50), 45, cvScalar(255,255,255,0.5), 1, 8, 0);//画一个圈cvNamedWindow("show an image", CV_WINDOW_AUTOSIZE);cvShowImage("show an image", img);cvWaitKey(0);cvReleaseImage(&img);cvDestroyWindow("show an image");return 0;}结果:
2、创建一个100*100的3通道图像,先把图设置成黑色,再通过cvPtr2D将指针指向绿色通道,以(20,5)和(40,20)为定点画一个长方形
#include <cv.h>#include <cxcore.h>#include <highgui.h>#include <stdlib.h>int _tmain(int argc, _TCHAR* argv[]){IplImage * img = cvCreateImage( cvSize(100,100), IPL_DEPTH_8U, 3);//创建一个IplImage对象cvZero(img);//将像素值全部置为0int top = 20,left = 5, bottom = 40, right = 20; for(;top <= bottom;top++)//两条竖线 { *(cvPtr2D(img,top,left)+1)=255;//green *(cvPtr2D(img,top,right)+1)=255;//green } top = 20; for(left = 5;left <= right; left++)//两条横线 { //*(cvPtr2D(img,top,left))=255;//blue *(cvPtr2D(img,top,left)+1)=255;//green //*(cvPtr2D(img,top,left)+2)=255;//red *(cvPtr2D(img,bottom,left)+1)=255;//green }cvNamedWindow("show an image", CV_WINDOW_AUTOSIZE);cvShowImage("show an image", img);cvWaitKey(0);cvReleaseImage(&img);cvDestroyWindow("show an image");return 0;}
结果:
3、使用ROI和cvSet创建一个金字塔式的图
#include "stdafx.h"#include <cv.h>#include <cxcore.h>#include <highgui.h>int _tmain(int argc, _TCHAR* argv[]){ IplImage * img = cvCreateImage(cvSize(210,210),IPL_DEPTH_8U,1); cvZero(img); int sclar; int add; int img_x, img_y; sclar = 0; add = 0; img_x = 0; img_y = 0; while(add < 200) { //设置感兴趣区域 cvSetImageROI(img,cvRect(img_x, img_y, 210-sclar, 210-sclar)); cvSet(img, cvScalar(add)); img_x = img_x + 10; img_y = img_y + 10; add = add + 20; sclar = sclar + 20; //释放感兴趣区域 cvResetImageROI(img); } //显示图像 cvNamedWindow("Source"); cvShowImage("Source",img); cvWaitKey(0); cvDestroyWindow("Source"); cvReleaseImage(&img); return 0;}
结果:
4、针对一个一幅图像创建两个图像头,分别指向图像中的一个区域,再对两个图像头应用cvNot函数,然后显示图像
#include "stdafx.h"#include <cv.h>#include <cxcore.h>#include <highgui.h>int _tmain(int argc, _TCHAR* argv[]){IplImage * img = cvLoadImage("lena.jpg");IplImage * imgHeaderA = cvCreateImageHeader(cvSize(20,30),img->depth, img->nChannels);imgHeaderA->origin = img->origin;imgHeaderA->widthStep = img->widthStep;IplImage * imgHeaderB = cvCreateImageHeader(cvSize(20,30),img->depth, img->nChannels);imgHeaderB->origin = img->origin;imgHeaderB->widthStep = img->widthStep;imgHeaderA->imageData = img->imageData + img->widthStep * 10 + img->nChannels * 5;imgHeaderB->imageData = img->imageData + img->widthStep * 50 + img->nChannels * 60;cvNot(imgHeaderA,imgHeaderA);cvNot(imgHeaderB,imgHeaderB);cvNamedWindow("show an image", CV_WINDOW_AUTOSIZE);cvShowImage("show an image", img);cvWaitKey(0);cvReleaseImage(&img); cvReleaseImageHeader(&imgHeaderA); cvReleaseImageHeader(&imgHeaderB); cvDestroyWindow("show an image");return 0;}结果:
- opencv初识
- 初识OpenCV
- opencv初识(一)
- VS2017初识opencv
- opencv初识,敬初学者,opencv安装办法
- 初识OpenCV(基础篇)
- 初识opencv人脸检测
- openCV学习笔记一 —— 初识openCV
- Opencv入门-第一回-梦牵机器视觉翼,初识Opencv域(安装Opencv)
- Opencv入门-第一回-梦牵机器视觉翼,初识Opencv域(安装Opencv)
- Opencv入门-第一回-梦牵机器视觉翼,初识Opencv域(安装Opencv)
- 初识OpenCV之显示一张图片(一)(1)
- OpenCV SIFT特征学习:(一)初识SIFT
- OpenCV 基础入门 基于官方文档的解读(1)--初识opencv
- 初识
- 初识
- 初识
- opencv
- git中文教程
- TYVJ1464(凸包+旋转卡壳)
- firewall rules 分析工具
- Java泛型-类型擦除
- 闲言碎语
- opencv初识
- showModalDialog缓存清除
- Inner Class Demo
- w3m 进行网页浏览
- 很好的算法题,第一步 留着备用
- Undo Segment
- 在ubuntu 12.04环境下配置Motion Strategy Library(MSL)
- containet_of
- Poj 1113 凸包问题