学习OPENCV书中一些函数的应用
来源:互联网 发布:专看耽美漫画的软件 编辑:程序博客网 时间:2024/05/16 06:09
第5章:
#include "cv.h"
#include "highgui.h"
void onthreshold(IplImage* src, IplImage* dst); //单一阈值化
void onadptivethreshold(IplImage* src, IplImage* dst); //自适应阈值化
int main(int agrc, char** agrv)
{
IplImage* src_image = cvLoadImage("1.png");
IplImage* dst_image = cvCloneImage(src_image);
IplImage* temp = cvCloneImage(src_image);
IplImage* pyr_temp = cvCreateImage(cvSize(src_image->width/2, src_image->height/2), src_image->depth, 3);
cvNamedWindow("src_image", 1);
cvShowImage("src_image", src_image);
cvPyrDown(src_image, pyr_temp, CV_GAUSSIAN_5x5); //降采样操作
cvNamedWindow("pyrdown_image", 1);
cvShowImage("pyrdown_image", pyr_temp);
cvErode(src_image, dst_image, NULL, 1); //腐蚀
cvNamedWindow("erode_image", 1);
cvShowImage("erode_image", dst_image);
cvDilate(src_image, dst_image, NULL, 1); //膨胀
cvNamedWindow("dilate_image", 1);
cvShowImage("dilate_image", dst_image);
cvMorphologyEx(src_image, dst_image, temp, NULL, CV_MOP_GRADIENT, 1); //形态学梯试操作
cvNamedWindow("morphology_image", 1);
cvShowImage("morphology_image", dst_image);
cvMorphologyEx(src_image, dst_image, temp, NULL, CV_MOP_BLACKHAT, 1); //形态学黑帽
cvNamedWindow("tophat_image", 1);
cvShowImage("tophat_image", dst_image);
IplImage* temp_dst = cvCreateImage(cvGetSize(src_image), IPL_DEPTH_8U, 1);
IplImage* gray_image = cvCreateImage(cvGetSize(src_image), IPL_DEPTH_8U, 1);
cvCvtColor(src_image, gray_image, CV_RGB2GRAY);
cvNamedWindow("gray_image", 1);
cvShowImage("gray_image", gray_image);
onthreshold(src_image, temp_dst); //单一阈值化
cvNamedWindow("threshold1_image", 1);
cvShowImage("threshold1_image", temp_dst);
cvThreshold(gray_image, temp_dst, 100, 255, CV_THRESH_BINARY);
cvNamedWindow("threshold2_image", 1);
cvShowImage("threshold2_image", temp_dst);
cvAdaptiveThreshold(gray_image, temp_dst, 255, CV_ADAPTIVE_THRESH_MEAN_C, CV_THRESH_BINARY, 3, 5); //自适应阈值化
cvNamedWindow("adaptivethreshold_image", 1);
cvShowImage("adaptivethreshold_image", temp_dst);
cvReleaseImage(&src_image);
cvReleaseImage(&dst_image);
cvReleaseImage(&temp_dst);
cvReleaseImage(&temp);
cvReleaseImage(&gray_image);
cvReleaseImage(&pyr_temp);
int c = cvWaitKey(0);
if (c ==27)
{
return -1;
}
return 0;
}
//单一阈值化
//
void onthreshold(IplImage* src, IplImage* dst)
{
IplImage* image_r = cvCreateImage(cvGetSize(src), IPL_DEPTH_8U, 1);
IplImage* image_g = cvCreateImage(cvGetSize(src), IPL_DEPTH_8U, 1);
IplImage* image_b = cvCreateImage(cvGetSize(src), IPL_DEPTH_8U, 1);
cvSplit(src, image_r, image_g, image_b, NULL);
IplImage* temp = cvCreateImage(cvGetSize(src), IPL_DEPTH_8U, 1);
cvAddWeighted(image_r, 1./3., image_g, 1./3., 0.0, temp);
cvAddWeighted(temp, 2./3., image_b, 1./3., 0.0, temp);
cvThreshold(temp, dst, 100, 255, CV_THRESH_BINARY);
cvReleaseImage(&image_r);
cvReleaseImage(&image_g);
cvReleaseImage(&image_b);
cvReleaseImage(&temp);
}
- 学习OPENCV书中一些函数的应用
- opencv中矩阵计算的一些函数
- OpenCV中Gabor函数的应用
- OPENCV中函数cvFilter2D的应用
- OpenCV学习笔记(3):一些函数等的解释(更新中...)
- opencv中一些功能函数
- OpenCV学习(6)--opencv中测量运行时间的函数
- 《学习opencv》笔记——关于一些绘图的函数
- 《学习opencv》笔记——关于一些绘图的函数
- 《学习opencv》笔记——关于一些绘图的函数
- 《学习opencv》笔记——关于一些绘图的函数
- opencv学习笔记:一些函数、类的使用方法
- 《学习opencv》笔记——关于一些绘图的函数
- 《学习opencv》笔记——关于一些绘图的函数
- OpenCv里的一些基本函数,持续更新中。。。。。
- OpenCv里的一些基本函数,持续更新中。。。。。
- opencv相关的一些函数
- 转:opencv的一些函数
- java请求http连接(servlet)类
- 给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数
- Android输入输出机制之来龙去脉之前生后世
- 在Facebook上也能赌博了 是现金不是Facebook信用度
- 增加一行、减少一行
- 学习OPENCV书中一些函数的应用
- UVa 634 - Polygon:判断点在任意多边形内
- 对/u-boot-1.1.6/board/smdk2410/u-boot.lds的更详细的分析
- jar命令打包Java程序
- android2.2 使用TrafficStats.getUidRxBytes(uid[n])获取流量返回-1
- Erlang gen_server:start_link/3 和gen_server:start_link/4 的区别以及各参数的含义
- LVM
- WriteProcessMemory
- PKCS#11的部分使用例码