openCV2.0中对于Mat中存在负值的时…
来源:互联网 发布:电视网络机顶盒什么牌子的好 编辑:程序博客网 时间:2024/05/16 08:49
今天,偶然遇到了一个问题,有一些Mat经过操作后,会形成负值,我遇到的问题是:怎么修改这些负值,也就是怎么对其进行操作???
如果用以前对像素的操作办法进行操作,是不行的,因为以前一直用的是uchar类型的,这种类型的范围是0--255,不可能对负值形成操作,经过一番尝试,可以用两个函数解决这个问题,分别是assighTo或者convertTo这两个函数都可以解决这个问题。
代码如下:
代码如下:
Mat C = (Mat_(3,3) << 0, -2, 0, -126, 5, -7, 245, -3, 106); //创建一个含有负值的Mat
Matdst(3,3,CV_8UC1);//用来接收转换后的数据的Mat,注意第三个参数
//C.convertTo(dst,dst.type());//转换函数
C.assignTo(dst,dst.depth());//同上,转换函数
//cout<<dst<<"";
for(inty=0; y
{
uchar *data = dst.ptr(y);//办法1
for(intx=0; x
{
//printf("%d",*(dst.data + dst.cols*y + x));//办法2
//cout<< (int)dst.at(y,x)<< " ";//办法3
cout<< (int)*(data + x)<< " ";//办法1
Mat
//C.convertTo(dst,dst.type());//转换函数
C.assignTo(dst,dst.depth());//同上,转换函数
//cout<<dst<<"
for(int
{
for(int
{
//printf("%d
//cout
cout
NOTE: 在OpenCV中,cv::Mat类提供了一个名为converTo的方法来进行矩阵类型转换。当然使用时需要注意的是,该函数只能进行矩阵深度类型的转换,而不能进行矩阵通道数的转换。若需要进行矩阵通道数的转换,可能需要采取进行其他的方法来变通实现,
验证代码如下:
-
-
cv::Mat matOrigin( 10, 10, CV_32FC3, cv::Scalar(10) ); -
-
-
cv::Mat mat8UC3Converted; -
matOrigin.convertTo( mat8UC3Converted, CV_8UC3, 1, 0 ); -
-
if ( CV_8UC3 == mat8UC3Converted.type() ) -
{ -
std::cout << "mat8UC3Converted 转换成功。" << std::endl; -
} -
else -
{ -
std::cout << "mat8UC3Converted 转换失败。" << std::endl; -
} -
-
-
cv::Mat mat8UC1Converted; -
matOrigin.convertTo( mat8UC1Converted, CV_8UC1, 1, 0 ); -
-
if ( CV_8UC1 == mat8UC1Converted.type() ) -
{ -
std::cout << "mat8UC1Converted 转换成功。" << std::endl; -
} -
else -
{ -
std::cout << "mat8UC1Converted 转换失败。" << std::endl; -
} -
-
system( "pause" ); -
-
return 0; - }
0 0
- openCV2.0中对于Mat中存在负值的时…
- Opencv中Mat对于像素的操作
- OpenCV2中访问Mat元素
- OPENCV2中Mat和C++中一般的类对象赋值时的严重不同
- Opencv2 中 Mat 关于图像像素的操作
- opencv2中IplImage和Mat的相互转化
- OpenCV2.4.13 中Mat的理解及常用方法
- cookie中 maxAge设置为负值 和0的区别
- java中byte(负值)作&运算时0xff的作用
- opencv2-mat的特点
- opencv2 在mfc窗口中显示关于cv::Mat 的解决方法
- 从OpenCV2的Mat说起
- v$filestat中PHYRDS负值
- margin 负值5中应用
- IE中使用滤镜实现透明度,影响到absolute的负值
- lua语言中矩阵下标为负值的含义
- CSS postion中z-index负值的应用
- opencv2 cv::Mat 释放内存时 release()的错误
- 关于openGL的说明及GLUT配置和open…
- openGL将三维坐标转换成二维坐标在…
- NSLog的输出格式
- opencv之利用opencv_traincascade训练分类器
- Kinect nite2 openNI2 配置遇到的问题
- openCV2.0中对于Mat中存在负值的时…
- VS2008下Debug和Release的区别
- 教程七(对话框)
- 简单工厂模式
- 教程八(属性页表单和逃跑按钮)
- 将博客搬至CSDN
- EventLoop分析[1-4]
- 迭代器模式
- 数据泵导入导出数据库