怎么用C++ OpenCV实现像素画
导读:本文共1347.5字符,通常情况下阅读需要4分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要:接下来,请跟着小编一起来学习吧!准备工作需要安装好 OpenCV,OpenCV的安装过程在这里不再赘述。另外我们准备了一个图片。代码实现首先我们需要在 CmakeLists.txt 文件中, 添加 OpenCV 的依赖find_package(OpenCV4REQUIRED)include_directories(${OPENCV_INCLUDE_DIRS})target_link_lib... ...
目录
(为您整理了一些要点),点击可以直达。接下来,请跟着小编一起来学习吧!
准备工作
需要安装好 OpenCV,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);
那我们来看下处理过之后的图像效果吧
效果看起来还可以,图片颜色单一图片尺寸稍微小一些的效果会好很多。
完整代码
#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实现像素画的详细内容,希望对您有所帮助,信息来源于网络。