socket网络编程实现图片特性处理

  • 一、Windows
  • 二、Ubuntu
  • 三、树莓派

一、Windows

  1. 安装opencv3.4.1
  2. 配置环境变量

  1. visual studio配置
    (1)新建空项目


(2)添加新建项


(3)打开属性管理器:选择Debug x64右键“属性”
(4)添加包含目录


(5)添加库目录

(6)添加附加依赖项


  1. 测试效果

  1. 编写代码
#include <opencv2/highgui.hpp>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{CvPoint center;double scale = -3;IplImage* image = cvLoadImage("d://dasan//qianrushi//Project1//timg.png");argc == 2 ? cvLoadImage(argv[1]) : 0;cvShowImage("Image", image);if (!image) return -1;     center = cvPoint(image->width / 2, image->height / 2);for (int i = 0; i < image->height; i++)for (int j = 0; j < image->width; j++) {double dx = (double)(j - center.x) / center.x;double dy = (double)(i - center.y) / center.y;double weight = exp((dx*dx + dy * dy)*scale);uchar* ptr = &CV_IMAGE_ELEM(image, uchar, i, j * 3);ptr[0] = cvRound(ptr[0] * weight);ptr[1] = cvRound(ptr[1] * weight);ptr[2] = cvRound(ptr[2] * weight);}Mat src; Mat dst;src = cvarrToMat(image);cv::imwrite("test.png", src);cvNamedWindow("test", 1);      imshow("test", src);cvWaitKey();return 0;
}

二、Ubuntu

  1. 官网下载opencv3.4.1 , 选择sources版本

  2. 解压下载下来的zip包

    unzip opencv-3.4.1.zip

  3. 进入到解压后的文件包中

  4. 安装依赖库和cmake ,如果提醒需要apt-get update,那就先sudo su进入root权限,再sudo apt-get update,然后在执行下面命令

    sudo apt-get install cmake

    sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff5.dev libswscale-dev libjasper-dev

  5. 安装完cmake之后执行命令 ,创建编译文件夹

    In-source builds are not allowed.

    mkdir my_build_dir

    cd my_build_dir

  6. cmake一下

    cmake -D CMAKE_BUILD_TYPE=Release-D

    CMAKE_INSTALL_PREFIX=/usr/local …

  7. 执行命令,漫长的编译过程

    sudo make

  8. 执行命令

    sudo make install

  9. 配置OpenCV的编译环境
    首先将OpenCV的库添加到路径,从而可以让系统找到

    sudo gedit /etc/ld.so.conf.d/opencv.conf

    在打开的空白的文件末尾添加
    /usr/local/lib

  10. 执行如下命令使得刚才的配置路径生效

    sudo ldconfig

  11. 配置bash

    sudo gedit /etc/bash.bashrc

    最末尾添加
    PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
    export PKG_CONFIG_PATH

    保存,执行如下命令使得配置生效

    source /etc/bash.bashrc

    更新

    sudo updatedb

  12. 所有的配置都已经完成,用一个自带的程序测试一下

    cd ~/dir/opencv-3.4.1/samples/cpp/example_cmake

    按顺序执行

    cmake .

    make

    ./opencv_example

    成功打开了摄像头,左上角有一个hello opencv

    配置成功

  13. 在Linux下编程
    依次执行

    cd opencv-3.4.1

    mkdir mytest

    cd mytest

    touch test.cpp

    sudo gedit /test.cpp

代码:

#include <opencv2/highgui.hpp>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{CvPoint center;double scale = -3; IplImage* image = cvLoadImage("timg.jpeg");argc == 2? cvLoadImage(argv[1]) : 0;cvShowImage("Image", image);if (!image) return -1;    center = cvPoint(image->width / 2, image->height / 2);for (int i = 0;i<image->height;i++)for (int j = 0;j<image->width;j++) {double dx = (double)(j - center.x) / center.x;double dy = (double)(i - center.y) / center.y;double weight = exp((dx*dx + dy*dy)*scale);uchar* ptr = &CV_IMAGE_ELEM(image, uchar, i, j * 3);ptr[0] = cvRound(ptr[0] * weight);ptr[1] = cvRound(ptr[1] * weight);ptr[2] = cvRound(ptr[2] * weight);}Mat src;Mat dst;src = cvarrToMat(image);cv::imwrite("test.png", src);cvNamedWindow("test",1);      imshow("test", src);cvWaitKey();return 0;
}

g++ test.cpp -o test ‘pkg-config --cflags –libsopencv’

./test

把test.cpp拷贝到home目录下

三、树莓派

  1. 安装opencv
    安装opencv的各种工具和图像处理包

软件源更新

sudo apt-get update

所有软件更新

sudo apt-get upgrade

树莓派固件更新

sudo rpi-update

安装构建opencv的相关工具

sudo apt-get install build-essential cmake git pkg-config

安装 jpeg 格式图像工具包

sudo apt-get install libjpeg8-dev

安装 tif 格式图像工具包

sudo apt-get install libtiff5-dev

安装 jasper 图像工具包

sudo apt-get install libjasper-dev

安装 png 图像工具包

sudo apt-get install libpng12-dev

安装视频 I/O 包

sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev

安装gtk2.0

sudo apt-get install libgtk2.0-dev

优化函数包

sudo apt-get install libatlas-base-dev gfortran

下载opencv源码

wget -O opencv-3.4.1.zip https://github.com/Itseez/opencv/archive/3.4.1.zip

解压opencv源码

unzip opencv-3.4.1.zip

下载opencv_contrib源码

wget -O opencv_contrib-3.4.1.zip https://github.com/Itseez/opencv_contrib/archive/3.4.1.zip

解压opencv_contrib源码

unzip opencv_contrib-3.4.1.zip

找到下载的文件夹,可以右键选择终端打开,也可以直接在终端下输入命令

cd opencv-3.4.1

新建一个名为release文件夹

mkdir release

进入此文件夹

cd release

设置cmake编译参数

sudo cmake -D CMAKE_BUILD_TYPE=RELEASE
-D CMAKE_INSTALL_PREFIX=/usr/local
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.4.1/modules
-D INSTALL_PYTHON_EXAMPLES=ON
-D BUILD_EXAMPLES=ON …

正式编译

sudo mkde

编译安装

sudo make install

更新动态链接库

sudo ldconfig

opencv编译安装完成.
编写程序
代码:

#include <opencv2/highgui.hpp>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{CvPoint center;double scale = -3;IplImage* image = cvLoadImage("d://dasan//qianrushi//Project1//timg.png");argc == 2 ? cvLoadImage(argv[1]) : 0;cvShowImage("Image", image);if (!image) return -1;     center = cvPoint(image->width / 2, image->height / 2);for (int i = 0; i < image->height; i++)for (int j = 0; j < image->width; j++) {double dx = (double)(j - center.x) / center.x;double dy = (double)(i - center.y) / center.y;double weight = exp((dx*dx + dy * dy)*scale);uchar* ptr = &CV_IMAGE_ELEM(image, uchar, i, j * 3);ptr[0] = cvRound(ptr[0] * weight);ptr[1] = cvRound(ptr[1] * weight);ptr[2] = cvRound(ptr[2] * weight);}Mat src; Mat dst;src = cvarrToMat(image);cv::imwrite("test.png", src);cvNamedWindow("test", 1);      imshow("test", src);cvWaitKey();return 0;
}

另:
用Ubuntu安装opencv时,占用空间较大,导致安装到百分之92时home目录已满安装失败,当初装双系统时分配给Ubuntu的空间不够用了,搜索解决方案: 回到Windows划分一个新加卷,挂载到home目录下。
在重启电脑时黑屏显示error:unknown filesystem ,搜索解决方案: 用ls显示分区信息,由于不知道Ubuntu所在分区,用set root=hd0,msdos1 ; set prefix=(hd0,msdos1) ; insmod normal 的语句一直从msdos0一直试到8,终于不显示unknow filesystem,输入nomal后成功进入开机选择系统的界面。

windowsubuntu树莓派安装opencv3.4.1相关推荐

  1. 树莓派安装opencv3.4.0时,出现CMakeError.log解法

    当执行sudo cmake -D......后,安装失败,结尾报告"See also ......CMakeError.log",到文件管理器打开"CMakeError. ...

  2. 树莓派4 安装OPENCV3全过程(各种踩坑和报错)

    树莓派4 安装OPENCV3全过程(各种踩坑和报错) 说明 第一步更换源 第二部:存储空间的一些说明和操作 第三步:增加交换空间 第四步:下载工具及包 第五步:设置编译编译参数 第六步:开始编译 第六 ...

  3. 树莓派交叉编译opencv3.4.1/pycharm安装opencv/实现人脸识别Demo记录

    目录 文章目录 目录 前言 树莓派交叉编译opencv3.4.1 安装环境 开始交叉编译 错误记录 WIN10+Anaconda+PyCharm安装opencv3.4.7 WIN10下opencv人脸 ...

  4. 树莓派安装openCV做图像识别

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达本文转自|新机器视觉 有时候我们会使用树莓派和摄像头去做图像识别,在 ...

  5. bootstrap文件不能被识别_树莓派安装openCV做图像识别

    有时候我们会使用树莓派和摄像头去做图像识别,在树莓派和LINUX系统中最常用opencv去做图像识别,这次来介绍下树莓派安装opencv和用树莓派做图像识别. 一.树莓派的系统 安装就不介绍了.直接开 ...

  6. 树莓派安装Opencv+Contrib和 QT 详细教程

    文章目录 前言 一.卸载OpenCV或重装系统 1.卸载OpenCV 2.重装系统 ①. 下载raspbian ②. 安装raspbian ③. 配置树莓派WiFi和SSH ④. 树莓派VNC设置 ⑤ ...

  7. 树莓派安装python3替换python2_在树莓派上安装基于python3的OpenCV

    书接上文Sebastian Zhou:从零开始在树莓派上安装系统(无显示器和网线)​zhuanlan.zhihu.com关于树莓派上安装OpenCV的教程也有很多,但似乎都陷入了一个怪圈,一定要在树莓 ...

  8. ubuntu16.04安装opencv3.4.1教程

    最近opencv3.4.1发布了,想换个新的试试鲜,于是把配置的过程通过博文的方式记录下来,方便查阅.  本教程原为3.3.0,但经过博主亲测,3.4.0.3.4.1皆适用 1.去官网下载opencv ...

  9. 安装opencv3.3.0碰到的问题及解决方法

    安装opencv3.3.0碰到的问题及解决方法 参考文章: (1)安装opencv3.3.0碰到的问题及解决方法 (2)https://www.cnblogs.com/kean0048/p/11046 ...

最新文章

  1. 【问题收录】Ubuntu14.04连接两个双显示器失败的解决方案
  2. python的集合类型——字符串、列表、元组、字典
  3. 解决IDM“警告:您在以管理员身份运行IDM,在该模式下,IDM无法接管浏览器的下载事件”的问题。
  4. 计算机专业好的211大学6,计算机专业好的985大学有哪些?附985211计算机大学名单排名...
  5. [蓝桥杯][2016年第七届真题]密码脱落(记忆化搜索)
  6. Java读取json文件,再生产新的json文件
  7. 学习3ds max插件开发过程中的一些小结
  8. atitit.j2ee 1.5 1.6 的不同跟 Servlet 3.0新特性总结
  9. HCIE-Security心得
  10. dps软件计算机64位的安装,DPS数据处理系统
  11. Spyder5.3.3无法使用下载好的库
  12. 日语学习|如何快速有效地记忆日语五十音图?
  13. ikbc键盘c104的按键设置
  14. JS 时间函数实现9宫格抽奖
  15. 简单的了解一下MySQL连接查询
  16. VScode 安装中文插件,不生效的解决办法
  17. 公司注册涉及前置审批和后置审批的经营范围有哪些(2019年上海最新版)
  18. 【bzoj1123】[POI2008]BLO
  19. 写在前面的一些话:《Learning OpenCV》中文版 .
  20. Linux命令~~ls列出 ~alias别名~通配符讲解

热门文章

  1. 以史为鉴:思考元宇宙的方法
  2. 【Three.js】解决使用Three.js导入obj模型不可见问题详细记录
  3. 晒晒我历年双十一的清单!
  4. “从我们能够预知未来的那一刻起,好事就会不断发生”
  5. XSX和PS5对标的电脑配置(2021年12月10日分析)
  6. AXWWriter兼容的Word处理元素
  7. java内存屏障详解_一文读懂Java关键词之volatile作用(内存屏障)
  8. 移动硬盘识别不出来怎么办?
  9. Uber 公司Golang编程规范【翻译】
  10. 我是一个苹果专卖店的