opencv3/C++图像像素操作的方法
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍了opencv3/C++图像像素操作的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇opencv3/C++图像像素操作的方法文章都会有所收获,下面我们
千家信息网最后更新 2026年11月02日opencv3/C++图像像素操作的方法
这篇文章主要介绍了opencv3/C++图像像素操作的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇opencv3/C++图像像素操作的方法文章都会有所收获,下面我们一起来看看吧。
RGB图像转灰度图
RGB图像转换为灰度图时通常使用:
进行转换,以下尝试通过其他对图像像素操作的方式将RGB图像转换为灰度图像。
#include#include using namespace cv;int main(){ //像素操作 Mat src,dst; src = imread("E:/image/image/daibola.jpg"); if(src.empty()) { printf("can not load image \n"); return -1; } namedWindow("input"); imshow("input",src); dst.create(src.size(), src.type()); for(int row = 0; row < src.rows; row++) { for(int col = 0; col < src.cols; col++) { int b = src.at (row, col)[0]; int g = src.at (row, col)[1]; int r = src.at (row, col)[2]; dst.at (row, col)[0] = max(r,max(g,b)); dst.at (row, col)[1] = max(r,max(g,b)); dst.at (row, col)[2] = max(r,max(g,b)); } } namedWindow("output"); imshow("output",dst); waitKey();}
同理使用min(r,min(g,b))可以看到由于选择了较小的灰度值图像会明显变暗:
图像线性增强
通过对图像像素操作(线性变换),实现图像的线性增强。
#include#include using namespace cv;int main(){ Mat src1, dst; src1 = imread("E:/image/image/im1.jpg"); if(src1.empty()) { printf("can not load im1 \n"); return -1; } double alpha = 1.2, beta = 50; dst = Mat::zeros(src1.size(), src1.type()); for(int row = 0; row < src1.rows; row++) { for(int col = 0; col < src1.cols; col++) { if(src1.channels() == 3) { int b = src1.at (row, col)[0]; int g = src1.at (row, col)[1]; int r = src1.at (row, col)[2]; dst.at (row, col)[0] = saturate_cast (b*alpha + beta); dst.at (row, col)[1] = saturate_cast (g*alpha + beta); dst.at (row, col)[2] = saturate_cast (r*alpha + beta); } else if (src1.channels() == 1) { float v = src1.at (row, col); dst.at (row, col) = saturate_cast (v*alpha + beta); } } } namedWindow("output",CV_WINDOW_AUTOSIZE); imshow("output", dst); waitKey(); return 0;}
掩膜操作调整图像对比度
使用一个3×3掩模增强图像对比度:
#include#include using namespace cv;int main(){ Mat src, dst; src = imread("E:/image/image/daibola.jpg"); CV_Assert(src.depth() == CV_8U); if(!src.data) { printf("can not load image \n"); return -1; } src.copyTo(dst); for(int row = 1; row<(src.rows - 1); row++) { const uchar* previous = src.ptr (row - 1); const uchar* current = src.ptr (row); const uchar* next = src.ptr (row + 1); uchar* output = dst.ptr (row); for(int col = src.channels(); col < (src.cols - 1)*src.channels(); col++) { *output = saturate_cast (9 * current[col] - 2*previous[col] - 2*next[col] - 2*current[col - src.channels()] - 2*current[col + src.channels()]); output++; } } namedWindow("image", CV_WINDOW_AUTOSIZE); imshow("image",dst); waitKey(); return 0;}
像素重映射
利用cv::remap实现像素重映射;
cv::remap参数说明:
Remap(InputArray src,// 输入图像OutputArray dst,// 输出图像InputArray map1,// 映射表1(CV_32FC1/CV_32FC2)InputArray map2,// 映射表2(CV_32FC1/CV_32FC2)int interpolation,// 选择的插值int borderMode,// 边界类型(BORDER_CONSTANT)const Scalar borderValue// 颜色 )
插值方法:
CV_INTER_NN =0, CV_INTER_LINEAR =1, CV_INTER_CUBIC =2, CV_INTER_AREA =3, CV_INTER_LANCZOS4 =4
通过像素重映射实现图像垂直翻转:
#includeusing namespace cv;int main(){ Mat src,dst; src = imread("E:/image/image/daibola.jpg"); if(src.empty()) { printf("can not load image \n"); return -1; } namedWindow("input", CV_WINDOW_AUTOSIZE); imshow("input", src); Mat mapx,mapy; mapx.create(src.size(), CV_32FC1); mapy.create(src.size(), CV_32FC1); for(int row = 0; row < src.rows; row++) { for(int col = 0; col < src.cols; col++) { mapx.at (row, col) = col; mapy.at (row, col) = src.rows - row - 1; } } remap(src, dst, mapx, mapy, CV_INTER_NN, BORDER_CONSTANT, Scalar(0,255,255)); namedWindow("output", CV_WINDOW_AUTOSIZE); imshow("output",dst); waitKey(); return 0;}
关于"opencv3/C++图像像素操作的方法"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"opencv3/C++图像像素操作的方法"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
图像
像素
方法
灰度
知识
线性
内容
对比度
篇文章
插值
选择
明显
价值
参数
掩膜
操作简单
文章
方式
易懂
更多
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技工作委员会副主任毛军
国智互联网科技
科技金融是不是互联网金融
A股互联网金融科技公司
互联网电商科技
鸠鸠互联网科技
为想互联网科技
贷财互联网科技
互联网科技视频素材
一五八零互联网科技
西藏七维空间互联网科技有限公司
创业天下互联网科技有限公司
北京华百购互联网科技有限公司
互联网科技扶贫时间
玉溪新华互联网科技好不好
工业互联网等科技实现智能化赋能
启辰互联网科技
富国互联网金融科技混合基金
长沙渺峰互联网科技有限公司
北京品多多互联网科技有限公司
湖北九亚互联网络科技有限公司
互联网 科技
互联网科技媒体
浩特互联网科技
互联网科技股午盘股票涨跌
武汉健翔互联网络科技有限公司
崇明区互联网教育科技售后服务
互联网第三次科技革命特征
互联网高科技行业有哪些企业
科技互联网专业工作会议发言稿