当前位置:网站首页>opencv之访问图像像素的三种方法
opencv之访问图像像素的三种方法
2022-07-31 05:16:00 【xp_fangfei】
指针访问像素
这种方法最快,但是有点抽象
例1:简单像素操作
for (int i = 0; i < _img.rows; i++) //行循环
{
uchar *data = _img.ptr<uchar>(i); //获取第i行的首地址
for (int j = 0; j < _img.cols; j++) //列循环
{
data[j] = data[j]/2; //处理每个像素
}
}
动态地址操作像素
这种方法简单明了符合大家对像素的认识;
例2:简单像素操作
for (size_t i = 0; i < _img.rows; i++) //行循环
{
for (size_t j = 0; j < _img.cols; j++) //列循环
{
_img.at<cv::Vec3b>(i,j) = cv::Vec3b(0,0,0); //处理每个像素
}
}
例3:判断像素值在某种条件下,对象素值的操作
for (size_t i = 0; i < _img.rows; i++) //行循环
{
for (size_t j = 0; j < _img.cols; j++) //列循环
{
//以下像素操作
if (_img.at<cv::Vec3b>(i,j)[0] >= 100 && _img.at<cv::Vec3b>(i,j)[0] <= 124 &&
_img.at<cv::Vec3b>(i,j)[1] >= 43 && _img.at<cv::Vec3b>(i,j)[1] <= 255 &&
_img.at<cv::Vec3b>(i,j)[2] >= 46 && _img.at<cv::Vec3b>(i,j)[2] <=255)
{
_img.at<cv::Vec3b>(i,j) = cv::Vec3b(0,0,0);;
}else{
_img.at<cv::Vec3b>(i,j) = cv::Vec3b(255,255,255);
}
}
}
迭代器操作像素
这种方法是获取图像矩阵的begin和end,然后增加迭代从begin到end,将*操作符添加在迭代指针前,即可访问当前指向的内容。
例3
cv::Mat_<cv::Vec3b>::iterator it = _img.begin<cv::Vec3b>(); //初始位置的迭代器
cv::Mat_<cv::Vec3b>::iterator itend = _img.end<cv::Vec3b>(); //终止位置的迭代器
//存取彩色图像像素
for(;it != itend; ++it)
{
(*it)[0] = (*it)[0]/2;
(*it)[1] = (*it)[1]/2;
(*it)[2] = (*it)[2]/2;
}
至此几种方法介绍完毕!
如果以上内容帮到您了,请关注加收藏哦!您的鼓励是我创作的最大动力!
边栏推荐
- cocos2d-x implements cross-platform directory traversal
- quick-3.5 无法正常显示有混合纹理的csb文件
- cocos2d-x 实现跨平台的目录遍历
- 计网 Packet Tracer仿真 | 简单易懂集线器和交换机对比(理论+仿真)
- DC-CDN学习笔记
- Pytorch常用函数
- sqlite 查看表结构 android.database.sqlite.SQLiteException: table splitTable has no column named
- 如何修改数据库密码
- 纯shell实现文本替换
- Filter out egrep itself when using ps | egrep
猜你喜欢
随机推荐
configure:error no SDL library found
Markdown help documentation
数据库 | SQL增删改查基础语法
cocos2d-x-3.2 image graying effect
cocos2d-x-3.2图片灰化效果
cocoscreator3.5.2打包微信小游戏发布到QQ小游戏修改
WeChat applet source code acquisition and decompilation method
二进制转换成十六进制、位运算、结构体
VS connects to MYSQL through ODBC (1)
pytorch学习笔记10——卷积神经网络详解及mnist数据集多分类任务应用
js中的全局作用域与函数作用域
为数学而歌之伯努利家族
this指向问题
cocos2d-x implements cross-platform directory traversal
Pytorch常用函数
深度学习知识点杂谈
网页截图与反向代理
Notes on creating a new virtual machine in Hyper-V
The server time zone value ‘й‘ is unrecognized or represents more than one time zone
ERROR Error: No module factory availabl at Object.PROJECT_CONFIG_JSON_NOT_VALID_OR_NOT_EXIST ‘Error