完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
思路分析
好比把大象装进冰箱要几步一样,为头像添加上国旗也是如此,先不讲通过什么语言实现,毕竟语言只是工具,OK,如果那,那为头像添加上国旗则需要以下几个步骤: Step1:读取头像和国旗图案。 Step2:把国旗叠加到头像上。 Step3:把叠加后的图片保存。 把大象放进冰箱只要这么几步,但是具体把国旗叠加到头像上,需要考虑的一体细节: 国旗必须缩放到合适大小,才能放到头像上。 国旗缩放后不能变形。 因此: 就把国旗的宽度缩放至头像宽度的1/4,然后高度也按照同样的比例进行缩放。 |
|
|
|
Python实现
# -*- coding: utf8 -*- import cv2 # Step1:读取头像和国旗图像。 img_head = cv2.imread(‘head.jpg’) img_flag = cv2.imread(‘flag.jpg’) # Step2:把国旗叠加到头像上。 # Step2.1:获取头像和国旗宽度 w_head, h_head = img_head.shape[:2] w_flag, h_flag = img_flag.shape[:2] # Step2.2:根据宽度计算缩放比例 scale = w_head / w_flag / 4 # Step2.3:根据缩放比例缩放国旗 img_flag = cv2.resize(img_flag, (0, 0), fx=scale, fy=scale) # Step2.4:获取缩放后国旗的新尺寸 w_flag, h_flag = img_flag.shape[:2] # Step2.5:根据缩放后的尺寸叠加国旗到头像右下角 for c in range(0, 3): img_head[w_head - w_flag:, h_head - h_flag:, c] = img_flag[:, :, c] # Step3:保存叠加后的图像 cv2.imwrite(‘new_head.jpg’, img_head) |
|
|
|
C++实现
接下来,来看看C++执行相关的代码 #include《iostream》 #include《opencv2/opencv.hpp》 #include《opencv2/highgui/highgui.hpp》 #include《opencv2/imgproc/imgproc.hpp》 using namespace std; using namespace cv; int main() { //Step1:读取头像和国旗图像。 Mat img_head = imread(“head.jpg”); Mat img_flag = imread(“flag.jpg”); Mat img_flag_resized; //Step2:把国旗叠加到头像上。 //Step2.1:获取头像和国旗宽度 int w_head = img_head.cols; int h_head = img_head.rows; int w_flag = img_flag.cols; int h_flag = img_flag.rows; //Step2.2:根据宽度计算缩放比例 double scale = (double)w_head/w_flag/4; //Step2.3:根据缩放比例缩放国旗 resize(img_flag,img_flag_resized,Size(),scale,scale,INTER_NEAREST); //Step2.4:获取缩放后国旗的新尺寸 w_flag = img_flag_resized.cols; h_flag = img_flag_resized.rows; //Step2.5:根据缩放后的尺寸叠加国旗到头像右下角 Mat imageROI=img_head(Rect(w_head-w_flag,h_head-h_flag,w_flag,h_flag)); img_flag_resized.copyTo(imageROI); //Step3:保存叠加后的图像 imwrite(“new_head.jpg”,img_head); return 0; } 其CmakeList.txt为: cmake_minimum_required(VERSION 3.0) project(07_National_Flag) find_package(OpenCV REQUIRED) add_executable(07_National_Flag main.cpp) target_link_libraries(07_National_Flag ${OpenCV_LIBS}) |
|
|
|
只有小组成员才能发言,加入小组>>
772 浏览 0 评论
1148 浏览 1 评论
2527 浏览 5 评论
2858 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2709 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1065浏览 3评论
190浏览 2评论
453浏览 2评论
368浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
453浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 05:29 , Processed in 0.911360 second(s), Total 81, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号