当前位置:网站首页>图像像素读写操作
图像像素读写操作
2022-07-07 10:33:00 【什么时候上岸?】
示例代码如下:
void demo::pixel_demo(Mat &image)
{
int w = image.cols;
int h = image.rows;
int dims = image.channels();
for (int i = 0; i < h; i++)
{
for (int j = 0; j < w; j++)
{
if (dims == 1)//灰度图像
{
int p = image.at<uchar>(i, j);
image.at<uchar>(i, j) = 255 - p;
}
if (dims == 3)//彩色图像
{
Vec3b g = image.at<Vec3b>(i, j);
image.at<Vec3b>(i, j)[0] = 255 - g[0];
image.at<Vec3b>(i, j)[1] = 255 - g[1];
image.at<Vec3b>(i, j)[2] = 255 - g[2];
}
}
}
imshow("像素图像", image);
}
这次主要是进一步学习Mat(矩阵)
通过image.at<uchar>(i,j)可以获得图像image在位置(i,j)的像素大小,因为灰度图像像素点只有一个值,uchar表示一个unsigned char 的大小。
在opencv中Vec3b表示三个数的列表,也存在Vec3i和Vec3f。
结果如下:
下面是用指针的方式改变像素
void demo::pixel_demo(Mat &image)
{
int w = image.cols;
int h = image.rows;
int dims = image.channels();for (int i = 0; i < h; i++)
{
uchar*p = image.ptr<uchar>(i);
for (int j = 0; j < w; j++)
{
if (dims == 1)
{
*p++ = 255 - *p;//先赋值再加加
}
if (dims == 3)
{
*p++ = 255 - *p;//先赋值再加加
*p++ = 255 - *p;//先赋值再加加
*p++ = 255 - *p;//先赋值再加加
}
}
}
imshow("像素图像", image);}
结果相同:
over!!!
边栏推荐
- Utiliser la pile pour convertir le binaire en décimal
- 牛客网刷题网址
- Experiment with a web server that configures its own content
- 【深度学习】图像多标签分类任务,百度PaddleClas
- SQL Lab (41~45) (continuous update later)
- How much does it cost to develop a small program mall?
- Unity map auto match material tool map auto add to shader tool shader match map tool map made by substance painter auto match shader tool
- 跨域问题解决方案
- leetcode刷题:二叉树23(二叉搜索树中的众数)
- The left-hand side of an assignment expression may not be an optional property access.ts(2779)
猜你喜欢
leetcode刷题:二叉树27(删除二叉搜索树中的节点)
数据库系统原理与应用教程(010)—— 概念模型与数据模型练习题
【统计学习方法】学习笔记——支持向量机(下)
Dialogue with Wang Wenyu, co-founder of ppio: integrate edge computing resources and explore more audio and video service scenarios
[pytorch practice] use pytorch to realize image style migration based on neural network
EPP+DIS学习之路(2)——Blink!闪烁!
Tutorial on principles and applications of database system (009) -- conceptual model and data model
@What happens if bean and @component are used on the same class?
leetcode刷题:二叉树19(合并二叉树)
VSCode的学习使用
随机推荐
Hi3516 full system type burning tutorial
IPv6 experiment
【PyTorch实战】用RNN写诗
利用棧來實現二進制轉化為十進制
Attack and defense world - PWN learning notes
Solutions to cross domain problems
[statistical learning methods] learning notes - improvement methods
Static routing assignment of network reachable and telent connections
[statistical learning methods] learning notes - Chapter 5: Decision Tree
NGUI-UILabel
GCC compilation error
30. Feed shot named entity recognition with self describing networks reading notes
Customize the web service configuration file
通讯协议设计与实现
[play RT thread] RT thread Studio - key control motor forward and reverse rotation, buzzer
[pytorch practice] write poetry with RNN
BGP actual network configuration
ES底层原理之倒排索引
An error occurred when vscade tried to create a file in the target directory: access denied [resolved]
EPP+DIS学习之路(1)——Hello world!