任务:用c++在图片上画线

之前用过python的opencv,所以直接想到了用c++的opencv来画线。

但关键就是VS中如何配置c++ opencv库的问题:

vs中opencv库的配置:https://www.cnblogs.com/linshuhe/p/5764394.html

1、创建工程:

可以创建控制台工程也可以创建空工程。

2、打开解决方案资源管理器和属性管理器

打开解决方案资源管理器:视图>>解决方案资源管理器

打开属性管理器:视图>>其他窗口>>属性管理器

3、创建c++文件

解决方案资源管理器中 source目录右键>>添加>>新建项

4、配置平台为x64

我的机器是64位的,应该用x64,而VS默认是win32,所以需要先修改一下平台:

debug>>配置管理器

活动解决方案平台>>如果有x64就选择x64,如果没有则选择新建,新建一个x64

5、配置属性管理器

配置平台为x64之后,就可以看到属性管理器里面多了debug|x64和release|x64两个文件夹

调试的时候配置debug|x64文件夹就好

右键>>属性

需要配置的一般有以下几个地方:

(1)include目录:

(2)lib目录:

这里注意,如果VS为2013版本的话,则应该使用vc12目录里的lib;如果VS为2015版本的话,则应该使用vc14目录里的lib,总之lib的版本不能高于VS的版本,否则会出错

我的VS是2013的,一开始下载了opencv-3.3.0-vc14的安装包,导致安装完成后没有vc12文件夹,强行用vc14则vs2013各种报错。于是重装了opencv-3.1.0解决了问题。

(3) 链接器input,把所用到的库文件的文件名考进去(注意不是路径名),尽量多考

(4)编译器的运行库(动态还是静态)。例如我写opencv的时候就必须用MTD,默认MDD就会出错

VS运行时库 MT MTD MD MDD区别:

https://www.cnblogs.com/ShaneZhang/p/3480502.html

(5)有时例如如果用到freopen函数,VS会报错说freopen函数危险不能用,如果非要用,也可以在这里配置一下

项目 =》属性 =》c/c++  =》预处理器=》点击预处理器定义,编辑,加入_CRT_SECURE_NO_WARNINGS,即可。

freopen函数不安全错误:https://blog.csdn.net/zhangyuehuan/article/details/12012635

c++读取文件freopen:https://blog.csdn.net/jacky_chenjp/article/details/70237418

6、写程序:opencv画直线

#include <iostream>
#include <stdio.h>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std; int main(){
// 读入图片
Mat img = imread("pic.png"); //配置点数 默认4个
const int pointnum = 4; double a[pointnum];
double b[pointnum];
double max = 0;
int maxindex = 0; //颜色集合
int scalar_cur = 0;
Scalar color[3] = {Scalar(255,0,0),Scalar(0,255,0),Scalar(0,0,255)}; //打开文件
freopen("E:\\programs\\c++\\Drawpic\\Drawpic\\pos", "r", stdin);
//while (scanf("[%lf, %lf]\n", &a[i], &b[i]) != EOF){ //读入文件,并找到位置最低的点
for (int i = 0; i<pointnum;i++){
scanf("[%lf, %lf]\n", &a[i], &b[i]);
if (b[i] > max){
max = b[i];
maxindex = i;
}
} //画线
for (int i = 0; i < pointnum; i++){
if (i == maxindex){
continue;
}
line(img, Point(a[maxindex], b[maxindex]), Point(a[i], b[i]), color[scalar_cur],3);
//三种颜色循环使用
scalar_cur = (scalar_cur + 1) % 3;
} imshow("face",img); // 等待60000 ms后窗口自动关闭
waitKey(60000);
}

opencv绘制直线:https://blog.csdn.net/weixin_36340947/article/details/77095924

VS c++ opencv画图的更多相关文章

  1. OpenCV画图(画OpenCV的标志)

    import numpy as np import cv2 img = np.ones((512, 512, 3), np.uint8)*255 # 画椭圆 # 图片 (圆心) (短轴长,长轴长),旋 ...

  2. Opencv画图操作

    1. 画矩形 MyRect rect;rect.left = 5;rect.top = 5;rect.right = 100;rect.bottom = 100;IplImage * pColorIm ...

  3. python opencv画图可视化

    画直线 import numpy as np import cv2 # Create a black image img = np.zeros((512,512,3), np.uint8) # Dra ...

  4. opencv画图

    #coding=utf-8 import cv2 import numpy as np img = cv2.imread("2.png",cv2.IMREAD_COLOR) cv2 ...

  5. 使用opencv-python画OpenCV LOGO

    OpenCV2-Python 官方教程的练习 代码: #-*- coding:utf-8 -*- import numpy as np import cv2 img = np.zeros((512, ...

  6. 人脸识别68个点<转>

    [Opencv] 于仕琪 人脸68个特征点分布情况 // 鼻尖 30 // 鼻根 27 // 下巴 8 // 左眼外角 36 // 左眼内角 39 // 右眼外角 45 // 右眼内角 42 // 嘴 ...

  7. OpenCV-Python Tutorials目录

    版本 3.4.6 1 Introduction to OpenCV OpenCV介绍Learn how to setup OpenCV-Python on your computer! 2 Gui F ...

  8. OpenCV基础篇之画图及RNG随机数对象

    程序及分析 /* * FileName : random_gen.c * Author : xiahouzuoxin @163.com * Version : v1.0 * Date : Tue 29 ...

  9. 关于OpenCV的Mat画图问题

    由于OpenCV的java版本画图有太多错误,只能自己编写画图的代码,在一个函数中,编写出画圆和深度距离的代码, 代码如下: public int CircleMyMat(Mat Show, Poin ...

随机推荐

  1. 完工尚需绩效指数 TCPI

    转自:http://www.cnblogs.com/allenblogs/archive/2010/12/09/1901404.html TCPI To Complete Performance In ...

  2. hdu 1000&hdu1001

    1001 #include<iostream> #include<stdio.h> using namespace std; int main() { long long n; ...

  3. 标准差分进化算法matlab程序实现(转载)

    标准差分进化算法matlab程序实现 自适应差分演化算法方面的Matlab和C++代码及论文 差分进化算法 DE-Differential Evolution matlab练习程序(差异演化DE) [ ...

  4. STM32F10x_SPI(硬件接口 + 软件模拟)读写Flash(25Q16)

    推荐 分享一个大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来! http://www.captainbed.net/strongerhuang Ⅰ.写在前 ...

  5. [Tips]Fix node.js addon build error: "gyp: binding.gyp not found"

    基于node-gyp写Node.js native addon的时候,碰到一个很恶心的问题. 调用“node-gyp configure”能成功,再调用“node-gyp”时总会报错,最后发现时系统时 ...

  6. 关于pom.xml中的MAVEN出错处理

    原因:maven与pom的版本不一致 解决方法: 1.升级maven 插件: help--install..... 2.根据出错的信息,找到没有下载成功的本地仓库目录 ,将目录下的文件删除,再在项目上 ...

  7. Grodno 2015 (Urozero May 2015 Day 5) D Triangles

    给出$P(<=10^9)$, 求有多少个有序三元组$(a, b, c),\ gcd(a, b, c) = 1,\ a + b + c <= P$且以它们构成的三角形中存在某个角是另外一个角 ...

  8. 【Python】Webpy

    http://webpy.org/install.zh-cn 官网学习,对于No socket could be created 一般是默认的8080端口已经被某些服务占用,可以换一个端口.

  9. poj 3680(最小费用最大流)

    题目链接:http://poj.org/problem?id=3680 思路:因为N<=200,而区间范围为[1,100000],因此需要离散化,去重,然后就是建图了相连两点连边,容量为k,费用 ...

  10. WPF实用知识点

    1.一个基本的WPF程序, 需要引入的程序集WindowsBase, PresentationCore, PresentationFramework using System; using Syste ...