testagain

#include<opencv/cv.h>
#include<opencv/highgui.h>
#include<iostream>
using namespace std;
int main ()
{
 CvPoint2D32f srcQuad[4],dstQuad[4];
 CvMat*warp_matrix=cvCreateMat(3,3,CV_32FC1);//此段程序没有成功,可能原因是
 IplImage*src1,*dst;
 src1=cvLoadImage("E:/6.jpg",1);
 IplImage*src=cvCreateImage(cvGetSize(src1),IPL_DEPTH_32F,3);
 cvResize(src1,src,CV_INTER_NN);

 //cout<<src->depth;
 dst=cvCloneImage(src);
 dst->origin=src->origin;
 cvZero(dst);
 srcQuad[0].x=0;
 srcQuad[0].y=0;
 srcQuad[1].x=src->width-1;
 srcQuad[1].y=0;
 srcQuad[2].x=0;
 srcQuad[2].y=src->height-1;
 srcQuad[3].x=src->width-1;
 srcQuad[3].y=src->height-1;
 dstQuad[0].x=src->width*0.05;
 dstQuad[0].y=src->height*0.33;
 dstQuad[1].x=src->width*0.9;
 dstQuad[1].y=src->height*0.25;
 dstQuad[2].x=src->width*0.2;
 dstQuad[2].y=src->height*0.7;
 dstQuad[3].x=src->width*0.8;
 dstQuad[3].y=src->height*0.9;
 cvGetPerspectiveTransform(srcQuad,dstQuad,warp_matrix);//
 cvWarpPerspective(src,dst,warp_matrix);//此处参数的类型应该是浮点型的3通道IPLImage*
 cvNamedWindow("E",1);
 cvShowImage("E",dst);
 cvWaitKey(0);
 //cvReleaseImage(&dst);
 //cvReleaseImage(&src);
 //cvReleaseMat(&warp_matrix);
 cvDestroyWindow("E");
 return 0;
}

 

 

 

/*#include<opencv/cv.h>
#include<opencv/highgui.h>
int main()
{
 IplImage*src=cvLoadImage("D:/6.jpg",0);
 IplImage*dst=cvCreateImage(cvGetSize(src),8,1);
 IplImage*src2=cvCreateImage(cvGetSize(src),8,1);
 cvEqualizeHist(src,dst);
 double m=50.0;
 //cvLogPolar(src,dst,cvPoint2D32f(src->width/4,src->height/2),m,CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS);
 //cvLogPolar(dst,src2,cvPoint2D32f(src->width/4,src->height/2),m,CV_INTER_LINEAR|CV_WARP_INVERSE_MAP);
 cvNamedWindow("logpolar",1);

 cvShowImage("logpolar",dst);
 cvNamedWindow("inverse logpolar",1);
 cvShowImage("inverse logpolar",src2);
 cvNamedWindow("E");
 cvShowImage("E",src);
 cvWaitKey();
 return 0;

 

 

 

 

 

 

#include<opencv/cv.h>
#include<opencv/highgui.h>
int main()
{
 IplImage*src=cvLoadImage("D:/6.jpg",1);
 IplImage*hsv=cvCreateImage(cvGetSize(src),8,3);
 cvCvtColor(src,hsv,CV_BGR2HSV);
 IplImage*h_plane=cvCreateImage(cvGetSize(src),8,1);
 IplImage*s_plane=cvCreateImage(cvGetSize(src),8,1);
 IplImage*v_plane=cvCreateImage(cvGetSize(src),8,1);
 IplImage*planes[]={h_plane,s_plane};
 cvCvtPixToPlane(hsv,h_plane,s_plane,v_plane,0);
 int h_bins=30,s_bins=32;
 CvHistogram*hist;
 {
  int hist_size[]={h_bins,s_bins};
  float h_ranges[]={0,180};
  float s_ranges[]={0,255};
  float*ranges[]={h_ranges,s_ranges};
  hist=cvCreateHist(2,hist_size,CV_HIST_ARRAY,ranges,1);
 }
 cvCalcHist(planes,hist,0,0);
 cvNormalizeHist(hist,1.0);
 int scale=10;
 IplImage*hist_img=cvCreateImage(cvSize(h_bins*scale,s_bins*scale),8,3);
    cvZero(hist_img);
 float max_value=0;
 cvGetMinMaxHistValue(hist,0,&max_value,0,0);
 for(int h=0;h<h_bins;h++)
 {
  for(int s=0;s<s_bins;s++)
  {
   float bin_val=cvQueryHistValue_2D(hist,h,s);
   cvRectangle(hist_img,cvPoint(h*scale,s*scale),cvPoint((h+1)*scale-1,(s+1)*scale-1),CV_RGB(0,0,0),CV_FILLED);
  }
 }
 cvNamedWindow("S",1);
 cvShowImage("S",src);
 cvNamedWindow("D",1);
 cvShowImage("D",hist_img);
 cvWaitKey(0);

 

}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值