关于opencv的Mat类型的imwrite()函数写入.jpg图像像素值会改变的解决方案
来源:互联网 发布:rhino mac授权码 编辑:程序博客网 时间:2024/06/06 04:41
#include <string>
#include <opencv2/opencv.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace std;
using namespace cv;
int main(){
string path = "F:\\example_tongue\\18标定.jpg";
Mat src = cv::imread(path);
Mat dst =Mat::zeros(1276,880,CV_8UC3);
for(int j = 0; j <src.rows; j++)
{
for(int i = 0; i<src.cols; i++)//注意:列的最大值是col-1,最小值是0
{
uchar *data = (src.data + src.step * j + src.channels()*i);
uchar *data_a = (dst.data + dst.step * j + dst.channels()*i);
if(((data[0]==254)&&(data[1]==0)&&(data[2]==0))||((data[0]==255)&&(data[1]==0)&&(data[2]==240)))
{
data_a[0]=data[0];
data_a[1]=data[1];
data_a[2]=data[2];
}
else
{
data_a[0]=0;
data_a[1]=0;
data_a[2]=0;
}
}
}
imwrite("F:\\eg\\18标定.jpg",dst);
return 0;
}
对于以上代码的 imwrite("F:\\eg\\18标定.jpg",dst);会使得保存的图像像素不是所赋值的像素值,解决该bug的方法是将图像存储为.tif格式,即 imwrite("F:\\eg\\18标定.tif",dst);
- 关于opencv的Mat类型的imwrite()函数写入.jpg图像像素值会改变的解决方案
- 【OpenCV】访问Mat图像中每个像素的值
- 【OpenCV】访问Mat图像中每个像素的值
- 【OpenCV】访问Mat图像中每个像素的值
- 【OpenCV】访问Mat图像中每个像素的值
- 【OpenCV】访问Mat图像中每个像素的值
- 【OpenCV】访问Mat图像中每个像素的值
- 【OpenCV】访问Mat图像中每个像素的值
- 【OpenCV】访问Mat图像中每个像素的值
- 【OpenCV】访问Mat图像中每个像素的值
- 【OpenCV】访问Mat图像中每个像素的值
- 【OpenCV】访问Mat图像中每个像素的值
- 【OpenCV】访问Mat图像中每个像素的值
- 【OpenCV】访问Mat图像中每个像素的值
- 【OpenCV】访问Mat图像中每个像素的值
- 【OpenCV】访问Mat图像中每个像素的值
- 【OpenCV】访问Mat图像中每个像素的值 (II)
- 【OpenCV】访问Mat图像中每个像素的值
- LeetCodeOJ_002: Add Two Numbers
- 2017-06-08大数据工作
- 【怎样写代码】函数式编程 -- Lambda表达式(一):引出
- 合并区间
- pca的最大方差理论解释
- 关于opencv的Mat类型的imwrite()函数写入.jpg图像像素值会改变的解决方案
- 方法和构造器的区别
- 解决IE禁止第三方Cookie
- [jvm]对象的创建
- #游戏unity#协程
- Android Studio的gradle项目构建
- 14.c++输入cin,cerr,clog。
- linux 卸载mysql
- jedis客户端操作redis主要三种模式