怎么用C++ OpenCV实现像素画(C++,opencv,开发技术)

时间:2024-05-03 09:31:32 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

接下来,请跟着小编一起来学习吧!

准备工作

需要安装好 OpenCV,OpenCV的安装过程在这里不再赘述。另外我们准备了一个图片。

怎么用C++ OpenCV实现像素画

代码实现

首先我们需要在 CmakeLists.txt 文件中, 添加 OpenCV 的依赖

find_package(OpenCV4REQUIRED)

include_directories(
${OPENCV_INCLUDE_DIRS}
)

target_link_libraries(${PROJECT_NAME}${OpenCV_LIBRARIES})

读取文件

std::stringpath="/path/to/img/";
cv::Matimg=cv::imread(path+"meinv.jpeg");

获取原图的像素宽高,然后进行像素比缩放。

intheight=img.size().height;
intwidth=img.size().width;

intpixel_size=10;

intnew_width=width/pixel_size;
intnew_height=height/pixel_size;

根据设定的像素比, 对原图进行缩小,再放大的两次 resize 操作。这样就完成了像素图的处理。

cv::MatimgTmp;
cv::resize(img,imgTmp,cv::Size(new_width,new_height),0,0,cv::INTER_LINEAR);

cv::resize(imgTmp,imgTmp,cv::Size(width/2,height/2),0,0,cv::INTER_LINEAR);

那我们来看下处理过之后的图像效果吧

怎么用C++ OpenCV实现像素画

效果看起来还可以,图片颜色单一图片尺寸稍微小一些的效果会好很多。

完整代码

#include<iostream>

include<opencv2/opencv.hpp>

intmain(){

std::stringpath="/Users/wbf/Desktop/";
cv::Matimg=cv::imread(path+"meinv.jpeg");
cv::imshow("meinv",img);
intheight=img.size().height;
intwidth=img.size().width;

intpixel_size=10;

intnew_width=width/pixel_size;
intnew_height=height/pixel_size;

std::cout<<new_height<<","<<new_width<<std::endl;
cv::MatimgTmp;
cv::resize(img,imgTmp,cv::Size(new_width,new_height),0,0,cv::INTER_LINEAR);

cv::resize(imgTmp,imgTmp,cv::Size(width/2,height/2),0,0,cv::INTER_LINEAR);

//std::vector<cv::Mat>v_mat;
//v_mat.push_back(img);
//v_mat.push_back(imgTmp);
cv::imshow("meinv2",imgTmp);
cv::waitKey(0);
}

若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

本文:怎么用C++ OpenCV实现像素画的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:html中怎么改变字体颜色和大小下一篇:

11 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18