当前位置: 首页 > news >正文

响应式科技公司网站模板天津网络关键词优化

响应式科技公司网站模板,天津网络关键词优化,你们网站做301,wap 在线OpenCV是非常流行的图像处理库,下面介绍一下其对图像的基本操作。 1. 安装与环境 安装还有点儿复杂的,但百度几篇博客基本能解决,这里就不多说了。 安装好后,要在工程中使用OpenCV的头文件和库,需要在CMakeLists.tx…

OpenCV是非常流行的图像处理库,下面介绍一下其对图像的基本操作。

1. 安装与环境

安装还有点儿复杂的,但百度几篇博客基本能解决,这里就不多说了。

安装好后,要在工程中使用OpenCV的头文件和库,需要在CMakeLists.txt中指定:

find_package(OpenCV 4.4)
MESSAGE("OPENCV VERSION: ${OpenCV_VERSION}")
include_directories(${OpenCV_INCLUDE_DIRS})
target_link_libraries(opencv_demo ${OpenCV_LIBS})

2. Demo讲解

2.1 简单读取+展示

  2 #include <opencv2/opencv.hpp>3 #include <string>4 5 using namespace std;6 7 int main(int argc, char **argv) {8     string image_path = "./3.png";9     cv::Mat cv_image = cv::imread(image_path, -1);10     cv::imshow("hello image", cv_image);11     cout << "channel: " << cv_image.channels() << endl;12     cout << "row: " << cv_image.rows << endl;13     cout << "col: " << cv_image.cols << endl;14     cv::waitKey(0);15     return 0;16 }

1. cv::Mat

cv::Mat是OpenCV提供的用于存储图像的结构,本质上是一个大的二维数组。可以直接在程序中利用[][]访问数组中的元素。

2. cv::imread

cv::imread是读取图像的接口,用于将指定路径的图片读入cv::Mat中。第一个参数就是图片的路径,主流格式都是支持的。第二个参数是一个flag,用于表示读入的方式:

flag=-1:按照原始图像的信息读入

flag=0: 按照灰度图读入

flag=1: 按照彩色图读入(前提是原始图片是彩色的)

3. cv::imshow

cv::imshow用于图片的展示,第一个参数是图片的名字,第二个是存储图片的cv::Mat结构。

通过cv::Mat,可以直接打印出

4. 像素及通道信息

程序除了展示了图片外,还打印了其像素和通道信息:

channel: 4
row: 1080
col: 1920

这些信息是和读入的图片相关的,不同的图片,信息也不一定相同。以这个图片为例,它的像素点有1080行,1920列,所以我们称这个图片的分辨率是1080*1920;通道数为4,是个彩色图片。

    单通道:也就是通常所说的灰度图,每个像素点只有一个值表示,如果图像的深度是4-(256 = 2*2*2*2) 为2^4(下同),那么他的像素取值范围是:0(黑)~255(白),并且仅用一个数字表示该点的像素值;

    三通道:也就是通过见到的彩色图,每个像素点有三个值表示,如果图像深度是4-(256 = 2*2*2*2),那么他的像素值有红(0~255)、绿(0~255)、蓝(0~255)叠加表示,色彩更加艳丽,每一个像素值为三个数字(a,b,c),分别代表了三原色的一种;
    四通道:也就是在三通道图像基础上加上透明程度,Alpha色彩空间,如果图像深度是4-(256 = 2*2*2*2),那么0是完全透明,255是完全不透明;
 

像素坐标

图片是有一个一个像素组成的,每个像素对应图片上的一个点,为了表示像素的位置,一般在会在图片上建立一个坐标系,然后用坐标来表示像素位置,这种坐标称为像素坐标(u-v坐标)。

(注意在OpenCV中u对应x对应列,v对应y对应行)

2.2 图片的缩放

上面已经说过,demo中的图片是1080*1920的,下面我们用OpenCV提供的接口将其缩小为原来的1/2,再放大到原来的4/3。

  1 2 #include <opencv2/opencv.hpp>3 #include <string>4 5 using namespace std;6 7 int main(int argc, char **argv) {8     string image_path = "./3.png";9     cv::Mat origin_image = cv::imread(image_path, -1);10     cv::imshow("origin image", origin_image);11 12     cv::Mat down_image;13     auto down_cols = round(origin_image.cols*0.5);14     auto down_rows = round(origin_image.rows*0.5);15     cv::resize(origin_image, down_image,16         cv::Size(down_cols, down_rows), 0, 0, cv::INTER_NEAREST);17     cv::imshow("down image", down_image);18 19     cv::Mat up_image;20     auto up_cols = round(origin_image.cols*4/3);21     auto up_rows = round(origin_image.rows*4/3);22     cv::resize(origin_image, up_image,23         cv::Size(up_cols, up_rows), 0, 0, cv::INTER_NEAREST);24     cv::imshow("up image", up_image);25 26     cv::waitKey(0);27     return 0;28 }

主要就是调用了cv::resize接口,然后通过cv::Size指定目标图片的大小即可,非常简单。

最后的参数是插值的方式

// 在opencv中主要有五种常用的插值方式
1. INTER_LINEAR     双线性插值
2. INTER_NEAREST    最邻近插值
3. INTER_CUBIC        双三次样条插值
4. INTER_AREA        邻域像素再取样
5. INTER_LANCZOS4    8X8领域兰索斯插值

2.3 图片裁剪

  2 #include <opencv2/opencv.hpp>3 #include <string>4 5 using namespace std;6 7 int main(int argc, char **argv) {8     string image_path = "./3.png";9     cv::Mat origin_image = cv::imread(image_path, -1);10     cv::imshow("origin image", origin_image);11 12     cv::Mat cropped_image = origin_image(cv::Range(80,280), cv::Range(150,330));13     cv::imshow("cropped image", cropped_image);14 15     cv::waitKey(0);16     return 0;17 }

这个代码也很容易理解,就不解释了。

到目前为止,遇到的接口都很友好,其实以后想要用哪种接口,直接百度一下即可,接口众多,没必要死记硬背。

http://www.yayakq.cn/news/126921/

相关文章:

  • 基础微网站开发代理商群晖搭建wordpress固定链接
  • 网上书店网站建设的说明书新余 网站建站 设计 公司
  • 哪个网站有免费空间北京网站建设加q.479185700
  • 网站程序授权码怎么进入网络管理系统
  • 贵州省铜仁市城乡建设局网站快速搭建网站的方法
  • 做网站每天更新两篇文章酒店网站的规划与建设
  • 北京手机网站建设公司排名app手机网站建设
  • 阿里云做视频网站河西网站建设优化seo
  • 网站404做多大深圳代理记账报税公司
  • 网站建设教程讲解seo综合排名优化
  • 网站建设有前途建设宠物网站的可行性
  • 做汽车的网站好用的wordpress模板
  • 网站源码传到哪个文件夹网站维护与建设
  • 苏州吴中区住房和城乡建设局网站吴江住宅城乡建设局网站
  • 一站式网站建设有哪些wordpress qq微信登陆地址
  • 潍坊网站公司网站编辑工作好做吗
  • 做钓鱼网站判刑自媒体wordpress
  • 网站建设 全包做网站 难
  • 门户网站建设报告哦广告网站素材
  • 怎样开网站卖东西优创智汇高端网站建设
  • 四川高速公路建设开发集团有限公司网站山东seo
  • 网站建设费用分析精彩 网站
  • 网站关键词没有指数中国建筑人才招聘网官网
  • 房产公司网站建设方案免费网址2021年能用的
  • 门户网站需要多少空间四川建设厅官方网站证件查询
  • 别人做的网站怎么打开吗中英企业网站系统
  • 国外酷炫flash网站毕设做网站答辩稿
  • 东营做网站品牌推广策划方案
  • wordpress国内视频网站吗博物馆展厅设计
  • 网站建设平台天梯建站网站建投网站深圳宝安网站建设公司推荐