图像镜像之水平镜像
来源:互联网 发布:儿童编程先学什么 编辑:程序博客网 时间:2024/05/20 02:21
代码如下:
(一)三通道分开分别镜像代码如下:
void Ctry::OnTryTyr1(){ //TODO: 在此添加命令处理程序代码IplImage *img = cvLoadImage("C:\\Users\\Administrator\\Desktop\\3838.jpg");IplImage *mirror = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 3);IplImage* r = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 1);IplImage* g = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 1);IplImage* b = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 1);IplImage* r1 = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 1);IplImage* g1 = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 1);IplImage* b1 = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 1);cvSplit(img, b, g, r, NULL);double temp1=0, temp2=0, temp3=0;int u = 0;for (int i = 0; i < r->width; i++){u = r->width - i - 1;for (int j = 0; j < r->height; j++){temp1 = cvGetReal2D(r, j , u);temp2 = cvGetReal2D(g, j , u);temp3 = cvGetReal2D(b, j , u);cvSetReal2D(r1, j, i, temp1);cvSetReal2D(g1, j, i, temp2);cvSetReal2D(b1, j, i, temp3);}}cvMerge(b1, g1, r1, 0, mirror);cvNamedWindow("move", CV_WINDOW_AUTOSIZE);cvShowImage("move", mirror);cvSaveImage("C:\\Users\\Administrator\\Desktop\\mirror.jpg", mirror);cvNamedWindow("img", CV_WINDOW_AUTOSIZE);cvShowImage("img", img);cvWaitKey(0);cvReleaseImage(&img);cvReleaseImage(&r);cvReleaseImage(&g);cvReleaseImage(&b);cvReleaseImage(&r1);cvReleaseImage(&g1);cvReleaseImage(&b1);cvReleaseImage(&mirror);cvDestroyWindow("move");cvDestroyWindow("img");}
(二)直接总体镜像代码如下:
void Ctry::OnTryTyr1(){ //TODO: 在此添加命令处理程序代码IplImage *img = cvLoadImage("C:\\Users\\Administrator\\Desktop\\3838.jpg");IplImage *mirror = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 3);CvScalar pixel;int u = 0;for (int i = 0; i < img->width; i++){u = img->width - i - 1;for (int j = 0; j < img->height; j++){pixel = cvGet2D(img, j, u);cvSet2D(mirror, j, i, pixel);}}cvNamedWindow("mirror", CV_WINDOW_AUTOSIZE);cvShowImage("mirror", mirror);cvSaveImage("C:\\Users\\Administrator\\Desktop\\mirror.jpg", mirror);cvNamedWindow("img", CV_WINDOW_AUTOSIZE);cvShowImage("img", img);cvWaitKey(0);cvReleaseImage(&img);cvReleaseImage(&mirror);cvDestroyWindow("mirror");cvDestroyWindow("img");}
效果图:
0 0
- 图像镜像之水平镜像
- 对图像进行水平镜像和垂直镜像!
- 图像镜像之竖直镜像
- 【VC图像处理】 图像水平镜像,垂直镜像,图像转置
- 图像处理之镜像
- Win8Metro(C#)数字图像处理--2.19图像水平镜像
- rgb图像镜像(水平)MATLAB程序
- Python实现图像平移、旋转、水平镜像等
- 水平镜像处理源代码
- 水平镜像处理源代码
- 图像镜像翻转
- 图像镜像翻转
- 图像镜像
- C++ 图像镜像
- 图像镜像
- 图像镜像
- RGB图像镜像
- 图像镜像
- jquery判断checked的三种方法:
- R语言学习资料大搜刮
- javaScript & jquery判断图片是否加载完毕
- 主Moudle的minSdkVersion小于LibMoudle的minSdkVersion解决
- Android HandlerThread和IntentService用法和源码解析
- 图像镜像之水平镜像
- 服务器端数据合法性验证:签名sign和口令token原理
- JavaScript入门(上篇)
- 在digitalocean droplet上安装博客平台ghost
- Caused by: org.hibernate.MappingException: No Dialect mapping for JDBC type: -4
- ubuntu下安装matlab2014b
- awesome-machine-learning
- Windows平台下SVN安装配置及使用
- 配置sonar、jenkins进行持续审查