高度; int w=图像->宽度; CVX; IplImage*img2=cvCreateImage(cvSize(h,w),8,1); CvMat*mat1=cvCreateMat(h,w,CV_32FC1); CvMat*mat2=cvCreateMat(h,w,CV_32FC1); cvConvert(图像,mat1); 对于(inti=0;i,c,opencv,image-processing,C,Opencv,Image Processing" /> 高度; int w=图像->宽度; CVX; IplImage*img2=cvCreateImage(cvSize(h,w),8,1); CvMat*mat1=cvCreateMat(h,w,CV_32FC1); CvMat*mat2=cvCreateMat(h,w,CV_32FC1); cvConvert(图像,mat1); 对于(inti=0;i,c,opencv,image-processing,C,Opencv,Image Processing" />

在c+中修改图像+;使用opencv 我想用OpenCV修改C++中的图像,这是我的代码 #include <cv.h> #include <highgui.h> using namespace std; int main(int* argc ,char* argv[]){ IplImage* image =cvLoadImage ("D://s1//1.pgm",0); //cvShowImage( "Source",image); int h=image->height; int w=image->width; CvScalar pix; IplImage* img2 = cvCreateImage( cvSize(h,w), 8, 1 ); CvMat* mat1 = cvCreateMat(h,w,CV_32FC1); CvMat* mat2 = cvCreateMat(h,w,CV_32FC1); cvConvert(image,mat1); for(int i=0;i<h;i++){ for(int j=0;j<w;j++){ if(i==j){ pix =1; cvSet2D(mat2,i,j,pix.val[0]);} else{ pix = cvGet2D( mat1,i,j); cvSet2D(mat2,i,j,pix.val[0]); } } } cvConvert(mat2,img2 ); cvShowImage( "image",img2); cvWaitKey(0); return 0;} #包括 #包括 使用名称空间std; int main(int*argc,char*argv[]){ IplImage*image=cvLoadImage(“D://s1//1.pgm”,0); //cvShowImage(“源”,图像); INTH=图像->高度; int w=图像->宽度; CVX; IplImage*img2=cvCreateImage(cvSize(h,w),8,1); CvMat*mat1=cvCreateMat(h,w,CV_32FC1); CvMat*mat2=cvCreateMat(h,w,CV_32FC1); cvConvert(图像,mat1); 对于(inti=0;i

在c+中修改图像+;使用opencv 我想用OpenCV修改C++中的图像,这是我的代码 #include <cv.h> #include <highgui.h> using namespace std; int main(int* argc ,char* argv[]){ IplImage* image =cvLoadImage ("D://s1//1.pgm",0); //cvShowImage( "Source",image); int h=image->height; int w=image->width; CvScalar pix; IplImage* img2 = cvCreateImage( cvSize(h,w), 8, 1 ); CvMat* mat1 = cvCreateMat(h,w,CV_32FC1); CvMat* mat2 = cvCreateMat(h,w,CV_32FC1); cvConvert(image,mat1); for(int i=0;i<h;i++){ for(int j=0;j<w;j++){ if(i==j){ pix =1; cvSet2D(mat2,i,j,pix.val[0]);} else{ pix = cvGet2D( mat1,i,j); cvSet2D(mat2,i,j,pix.val[0]); } } } cvConvert(mat2,img2 ); cvShowImage( "image",img2); cvWaitKey(0); return 0;} #包括 #包括 使用名称空间std; int main(int*argc,char*argv[]){ IplImage*image=cvLoadImage(“D://s1//1.pgm”,0); //cvShowImage(“源”,图像); INTH=图像->高度; int w=图像->宽度; CVX; IplImage*img2=cvCreateImage(cvSize(h,w),8,1); CvMat*mat1=cvCreateMat(h,w,CV_32FC1); CvMat*mat2=cvCreateMat(h,w,CV_32FC1); cvConvert(图像,mat1); 对于(inti=0;i,c,opencv,image-processing,C,Opencv,Image Processing,cvSet2D(mat2,i,j,pix.val[0]) 语法不正确。它应该是 cvSet2D(mat2,i,j,pix) 如果要修改pix的RGB值,必须在此行之前完成 举个武断的例子, pix.val[0]=pix.val[0]/2 如果您告诉我们修改的确切内容,那么问题将更容易回答。#include #include <cv.h> #include <highgui.h> using namespace std; int main(int argc ,c

cvSet2D(mat2,i,j,pix.val[0])

语法不正确。它应该是

cvSet2D(mat2,i,j,pix)

如果要修改pix的RGB值,必须在此行之前完成

举个武断的例子,

pix.val[0]=pix.val[0]/2

如果您告诉我们修改的确切内容,那么问题将更容易回答。

#include
 #include <cv.h>
 #include <highgui.h>  
 using namespace std;
 int main(int argc ,char** argv[]){  
 CvScalar pix;
 IplImage* img2 = cvCreateImage( cvSize(500,500), 32,3 );
 for(int i=0;i<500;i++)
    for(int j=0;j<500;j++){
    pix = cvGet2D( img2,i,j);
    pix.val[0]=rand()%150;
    pix.val[1]=rand()%150;
    pix.val[2]=rand()%150;
    cvSet2D(img2,i,j,pix); }     
 cvShowImage( "image",img2);
 cvWaitKey(0);
 return 0;}
#包括 使用名称空间std; intmain(intargc,字符**argv[]){ CVX; IplImage*img2=cvCreateImage(cvSize(500500),32,3);
对于(int i=0;i为什么不起作用?我们需要一个线索…你能给我们错误代码或类似的东西吗?你想做什么样的修改?我想修改imageerror中的一些像素:“cvSet2D”:无法将参数4从“double”转换为“CvScalar”,请更具体地回答你面临的问题和问题。谢谢非常有意思的回答,但这也不适用于我,我想修改灰度图像中的一些像素,您想做什么修改?此外,如果您只想修改像素,您正在进行太多的转换。您可以使用IplImage而不转换为cvMat,为此目的。