精华内容
下载资源
问答
  • 主要为大家详细介绍了opencv实现定时录像功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 主要为大家详细介绍了OpenCV实现图像切割功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 主要为大家详细介绍了OpenCV实现图像校正功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 主要为大家详细介绍了Opencv实现轮廓提取功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • OpenCV实现马赛克功能

    2020-08-28 03:25:29
    主要为大家详细介绍了OpenCV实现马赛克功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 主要为大家详细介绍了OpenCV实现人脸检测功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • Opencv实现画笔功能

    2020-08-24 20:30:48
    主要为大家详细介绍了Opencv实现画笔功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 主要为大家详细介绍了基于opencv实现简单画板功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 主要为大家详细介绍了python调用OpenCV实现人脸识别功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 主要为大家详细介绍了python利用Opencv实现人脸识别功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 主要为大家详细介绍了Java+opencv3.2.0实现人脸检测功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 基于OpenCV实现的双线性插值缩放图像,缩放效果与OpenCV自带的resize的结果一致
  • OpenCV是如今最流行的计算机视觉库,今天我们通过本文给大家分享Python下应用opencv 实现人脸检测功能,感兴趣的朋友跟随小编一起看看吧
  • VS2008+OpenCV,C++实现的用trackbar实现开关功能
  • openCV实现监控功能

    2013-02-25 11:35:53
    利用camerads解决方案,实现摄像头的实时监控, 前提需要openCV1.0安装环境, 经本人亲测,效果很好, 请放心下载。
  • opencv实现截图功能

    热门讨论 2012-11-04 14:16:12
    这是个练习程序,使用了opencv从一张图片中截取出我们感兴趣的地方生成另张图片。
  • QT4.3.0+OpenCV5.12.2实现拍照功能+曝光调整+视频灰度处理+视频二值化处理;可执行程序
  • 基于OpenCV实现的图片识别功能基于OpenCV实现的图片识别功能基于OpenCV实现的图片识别功能
  • opencv实现拼图功能

    千次阅读 2015-05-28 08:29:33
     在使用美图秀秀之类工具的时候,发现了一个拼图功能,然后这里用opencv实现了类似效果。 实现原理 具体代码 #include #include #include #include #include #include #include #include   using ...

    简介

      在使用美图秀秀之类工具的时候,发现了一个拼图功能,然后这里用opencv实现了类似效果。
    

    实现原理

    具体代码

    #include <math.h>
    #include <string.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <opencv2/core/core.hpp>
    #include <opencv2/highgui/highgui.hpp>
    #include <opencv/cv.h>
    #include <math.h>
     
    using namespace cv;
     
    #define pic_num 4
     
    Mat src, imageROI[pic_num];
    Mat srcROI[4];
    int width=0, height=0;
    int src2_width, src2_height;
    char pic_name[pic_num][20];
    char bg[20] = "src/w.jpg";
    int picaddr[pic_num][4] = {{2, 49, 2, 49}, {51, 98, 2, 24}, {51, 98, 26, 49}, {2, 98, 51, 98}};
     
    void MyResize(Mat& mat1, Mat& mat2, int width, int height){
    	IplImage pI_1 = mat1, pI_2;
     
    	mat2 = cv::Mat(height, width, CV_8UC3, 1);
    	pI_2 = mat2;
     
    	cvResize(&pI_1, &pI_2, 1);
    }
     
    void init(char* argv[]){
    	int i, j;
     
    	memcpy(pic_name[0],argv[1],sizeof(argv[1]));
    	memcpy(pic_name[1],argv[2],sizeof(argv[2]));
    	memcpy(pic_name[2],argv[3],sizeof(argv[3]));
    	memcpy(pic_name[3],argv[4],sizeof(argv[4]));
    	src=imread(bg,1);
    	width =  src.cols;
    	height = src.rows;
    	for(i=0; i< pic_num; i++){
    		for(j=0; j<4; j++){
    			if(j<2){
    				picaddr[i][j] = picaddr[i][j] * width / 100;
    			}else{
    				picaddr[i][j] = picaddr[i][j] * height / 100;
    			}
    		}
    		srcROI[i] = imread(pic_name[i], 1);
    	}
    }
     
    void roiadd(void){
    	int i;
    	Mat tmp;
    	for(i=0; i< pic_num; i++){
    		imageROI[i] = src(cv::Rect(picaddr[i][0], picaddr[i][2], picaddr[i][1] - picaddr[i][0], picaddr[i][3] - picaddr[i][2]));
    		MyResize(srcROI[i], tmp, picaddr[i][1] - picaddr[i][0], picaddr[i][3] - picaddr[i][2]);
    		addWeighted(imageROI[i], 0, tmp, 1, 0.0, imageROI[i]);
    	}
    	imshow("src", src);
    }
     
    int main(int agrc, char* argv[]){
    	char c;
    	int i;
     
    	init(argv);
    	roiadd();
    	waitKey(0);
    	return 0;  
    }

    代码讲解

      1、在init函数中,打开了背景图片到src中,接着根据背景图片的width和height,计算出来将要进行拼图的4张图片位置,保存到picaddr中。
    然后打开了要进行拼图的4张图片到srcROI中。
    
    void init(char* argv[]){
    	int i, j;
     
    	memcpy(pic_name[0],argv[1],sizeof(argv[1]));
    	memcpy(pic_name[1],argv[2],sizeof(argv[2]));
    	memcpy(pic_name[2],argv[3],sizeof(argv[3]));
    	memcpy(pic_name[3],argv[4],sizeof(argv[4]));
    	src=imread(bg,1);
    	width =  src.cols;
    	height = src.rows;
    	for(i=0; i< pic_num; i++){
    		for(j=0; j<4; j++){
    			if(j<2){
    				picaddr[i][j] = picaddr[i][j] * width / 100;
    			}else{
    				picaddr[i][j] = picaddr[i][j] * height / 100;
    			}
    		}
    		srcROI[i] = imread(pic_name[i], 1);
    	}
    }
      2、在roiadd函数中,首先使用imageROI方式,根据picaddr,获得要在背景图中拼图的具体位置,然后将准备拼入的图片srcROI,根据picaddr计算出来的
    width和height,进行缩放。最后addWeighted以1的权重将缩放后图片混合到imageROI对应的位置。最后用imshow显示出来。
    
    void roiadd(void){
    	int i;
    	Mat tmp;
    	for(i=0; i< pic_num; i++){
    		imageROI[i] = src(cv::Rect(picaddr[i][0], picaddr[i][2], picaddr[i][1] - picaddr[i][0], picaddr[i][3] - picaddr[i][2]));
    		MyResize(srcROI[i], tmp, picaddr[i][1] - picaddr[i][0], picaddr[i][3] - picaddr[i][2]);
    		addWeighted(imageROI[i], 0, tmp, 1, 0.0, imageROI[i]);
    	}
    	imshow("src", src);
    }

    效果演示

      对应的效果演示如下:
                                      
    展开全文
  • 主要为大家详细介绍了OpenCV Java实现人脸识别和裁剪功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 主要介绍了在OpenCV实现极坐标变换功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 33,803
精华内容 13,521
关键字:

opencv可以实现什么功能