大家好,我是【1+1=王】, 热爱java的计算机(人工智能)渣硕研究生在读。
如果你也对java、人工智能等技术感兴趣,欢迎关注,抱团交流进大厂!!!
Good better best, never let it rest, until good is better, and better best.
近期会把自己本科阶段的一些课程设计、实验报告等分享出来,供大家参考,希望对大家有帮助。
博客更新至专栏【课程设计实验报告】:https://blog.csdn.net/weixin_43598687/category_11640051.html
1、 掌握图像的平移变换原理与操作
2、 掌握图像的伸缩变换原理与操作
编写程序实现图片的平移与伸缩变换
1) 原理
2) 流程
(1) 打开VC++,编写相应的图像平移、伸缩的代码;
(2) 运行程序,打开文件,得到效果图。
平移变换:
//读原图
Mat image;
image = imread("pic.jpg", CV_LOAD_IMAGE_COLOR);
if (!image.data)
{
cout << "找不到图片或无法打开图片\n";
return -1;
}
namedWindow("image_source", CV_WINDOW_AUTOSIZE);
imshow("原图", image);
//--------------------平移变换--------------
int dx = 10, dy = 20;
Mat image_shift(image.rows + dx, image.cols+dy, CV_8UC3);
//新建一个大于原图的图像,备用
//一个个像素进行处理
for (int counter1 = 0; counter1 < image.rows; counter1++)
{
for (int counter2 = 0; counter2 < image.cols; counter2++)
{
//将原坐标进行平移,并将原坐标上的RGB值赋给新坐标
image_shift.at<Vec3b>(counter1+dx, counter2+dy)[0] = image.at<Vec3b>(counter1, counter2)[0];
image_shift.at<Vec3b>(counter1+dx, counter2 + dy)[1] = image.at<Vec3b>(counter1, counter2)[1];
image_shift.at<Vec3b>(counter1+dx , counter2+ dy)[2] = image.at<Vec3b>(counter1, counter2)[2];
}
}
//imshow("平移", image_shift);
imwrite("1.jpg", image_shift);
//将平移后的图像存储为名称为1.jpg的文件
//-------------- 平移完成-------------------
2)缩放变换
double mul_num = 0.8;
//大于1是放大,小于1是缩小
int row_num = (int)floor(image.rows * mul_num), col_num = (int)floor(image.cols * mul_num);
Mat image_scale(row_num, col_num, CV_8UC3);
for (int counter1 = 0; counter1 < row_num; counter1++)
{
for (int counter2 = 0; counter2 < col_num; counter2++)
{
//将筛孔缩小,对上画的大小
int x = (int)1.0 / mul_num *counter1, y = (int)1.0 / mul_num *counter2;
image_scale.at<Vec3b>(counter1, counter2 )[0] = image.at<Vec3b>(x, y)[0];
image_scale.at<Vec3b>(counter1, counter2 )[1] = image.at<Vec3b>(x, y)[1];
image_scale.at<Vec3b>(counter1, counter2 )[2] = image.at<Vec3b>(x, y)[2];
}
} //imshow("尺度变换", image_scale);
imwrite("2.jpg", image_scale);
//存储变换后的图像
博客更新至专栏【课程设计实验报告】:https://blog.csdn.net/weixin_43598687/category_11640051.html
开发者涨薪指南
48位大咖的思考法则、工作方式、逻辑体系
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/weixin_43598687/article/details/124572587
内容来源于网络,如有侵权,请联系作者删除!