首页 > 作文

C++ OpenCV实现像素画的示例代码

更新时间:2023-04-04 17:05:30 阅读: 评论:0

目录
准备工作代码实现完整代码

最近在学习opencv,准备后续更新一波opencv相关的内容。代码实现主要是以 c++ 为主, 另外为了辅助学习,还会使用c# 开发一款桌面的软件,用于演示各种功能。

今天我给大家准备了一个类似于打马赛克的功能。通过像素的变化,演示一个像素画的功能。像素画在 nft 中特别的流行。

准备工作

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

代码实现

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

find_package(opencv 4 required)include_directories(    ${opencv_include_dirs})target_link_libraries(${project_name} ${opencv_libraries})

读取文件

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

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

int height = img.size().height;int width = img.size().width;int pixel_size = 10;int new_width = 头像非主流女生width / pixel_size;int new_height = height / pixel_size;

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

cv::mat imgtmp;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>int main() {    std::string path = "/urs/wbf/desktop/";    cv::mat img = cv::imread(path +"meinv.jpeg");    cv::imshow("meinv", img);    int height = img.size().height;    int width = img.size().width;    int pixel_size = 10;    int new_width = width / pixel_size;    int new_height = height / pixel_size;    s中国叛徒td::小学数学五年级下册cout << new_height << "," << new_width << std::endl;    cv::mat imgtmp;    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实现像素画的示例代码的文章就介绍到这了,更多相关c++ opencv像素画内容请搜索www.马鞍池公园887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

本文发布于:2023-04-04 17:05:28,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/e33d3142b3b7da6b65483de120e56ee4.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:C++ OpenCV实现像素画的示例代码.doc

本文 PDF 下载地址:C++ OpenCV实现像素画的示例代码.pdf

标签:像素   代码   原图   效果
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图