⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 imagenview.cpp

📁 这是VC++ 2003.net图像处理的光盘源程序!!!非常好的
💻 CPP
📖 第 1 页 / 共 5 页
字号:
 	pCmdUI->Enable((!pImg[1]->IsNull())&&(ImageType(pImg[1])==3));
}

void CImageNView::OnUpdateSearchAreaKernel(CCmdUI *pCmdUI)
{
 	pCmdUI->Enable((!pImg[1]->IsNull())&&(ImageType(pImg[1])==0));
}

void CImageNView::OnUpdateLimitErosion(CCmdUI *pCmdUI)
{
 	pCmdUI->Enable((!pImg[1]->IsNull())&&(ImageType(pImg[1])==0));
}

void CImageNView::OnUpdateConditionDilation(CCmdUI *pCmdUI)
{
 	pCmdUI->Enable((!pImg[8]->IsNull())&&(ImageType(pImg[1])==0));
}

void CImageNView::OnUpdateAutomaticSelect(CCmdUI *pCmdUI)
{
 	pCmdUI->Enable((!pImg[1]->IsNull())&&(ImageType(pImg[1])==0));
}

void CImageNView::OnUpdateWhiteArea(CCmdUI *pCmdUI)
{
 	pCmdUI->Enable((!pImg[1]->IsNull())&&(ImageType(pImg[1])==0));
}

void CImageNView::OnUpdateBlackArea(CCmdUI *pCmdUI)
{
 	pCmdUI->Enable((!pImg[1]->IsNull())&&(ImageType(pImg[1])==0));
}

//-------------------------------------------------------------------------

void CImageNView::GrayTransfer(int f)
{
	struct		IMAGEPARAMENT P;
	int			x,y,h,n,s,t;
	long		pg[256];
	CClientDC	dc(this);
  
	ClearWindow(0);
	ImageCopy(pImg[0],pImg[1]);
	GrayScaleTransfor(pImg[1],f);
	WorkCanvusToWindow();

	GetImageParament(pImg[0],&P);
	x=P.nWidth+30;
	y=40;
	h=120;
 	n=180;
	s=256;
	t=20;
 
	Histogram(pImg[0],0,0,P.nWidth,P.nHeight,pg);
	CreateHistogram(pImg[2],pg,h,0,0);
 	pImg[2]->BitBlt(dc,x,y,s+20,h+20,0,0,SRCCOPY);
	CreateColorStrip(pImg[2],pImg[0],s,t);
 	pImg[2]->BitBlt(dc,x+9,y+135,s+2,t+2,0,0,SRCCOPY);

	CreateTransferCurve(pImg[2],pg,f);
	if (f!=10)
  		pImg[2]->BitBlt(dc,x+74,y+20+n,130,130,0,0,SRCCOPY);
 
	Histogram(pImg[1],0,0,P.nWidth,P.nHeight,pg);
	CreateHistogram(pImg[2],pg,h,0,0);
 	pImg[2]->BitBlt(dc,x,y+2*n,s+20,h+20,0,0,SRCCOPY);
	CreateColorStrip(pImg[2],pImg[1],s,t);
 	pImg[2]->BitBlt(dc,x+9,y+135+2*n,s+2,t+2,0,0,SRCCOPY);

	if (f>9)
		ImageCopy(pImg[1],pImg[0]);
}

void CImageNView::OnGtLinear()
{
	GrayTransfer(1);
}

void CImageNView::OnGtSqrt()
{
	GrayTransfer(2);
}

void CImageNView::OnGtLog()
{
	GrayTransfer(3);
}

void CImageNView::OnGtSquare()
{
	GrayTransfer(4);
}

void CImageNView::OnGtExp()
{
	GrayTransfer(5);
}

void CImageNView::OnGtEqual()
{
	GrayTransfer(6);
}

void CImageNView::OnGtHistoEq()
{
	GrayTransfer(7);
}

void CImageNView::OnGtNega()
{
	GrayTransfer(8);
}

void CImageNView::OnBorderEqual()
{
	GrayTransfer(9);
}

void CImageNView::OnDensitySegment()
{
	GrayTransfer(10);
}

void CImageNView::OnGtPsendoColor()
{
	GrayTransfer(11);
}

void CImageNView::OnFormAnalysis()
{
	struct		IMAGEPARAMENT P;
	int			x,y,h,s;
 	CClientDC	dc(this);
	CString		str1;

	ClearWindow(1);
 	GetImageParament(pImg[1],&P);
 
 	x=P.nWidth+10;
	y=40;
	h=120;
 	s=256;
  
 	CreateHistogramA(pImg[2],pImg[1],h,1+2);
 	pImg[2]->BitBlt(dc,x,y,s+20,h+50,0,0,SRCCOPY);

	Threshold(pImg[1],1,0);
	str1.Format(" 的二值图像"); 
 	WriteTitle(pImg[1],m_FileName,str1);                 
	WorkCanvusToWindow();
}

void CImageNView::OnPtileThreshold()
{
	CString	str1;

  	Threshold(pImg[1],2,0.20);                  
	str1.Format(" 的二值图像"); 
 	WriteTitle(pImg[1],m_FileName,str1);                 
	WorkCanvusToWindow(); 
}

void CImageNView::OnOtsuThreshold()
{
	CString	str1;

  	Threshold(pImg[1],3,0);
	str1.Format(" 的二值图像"); 
 	WriteTitle(pImg[1],m_FileName,str1);                 
	WorkCanvusToWindow(); 
}

void CImageNView::OnMinimumThreshold()
{
	CString	str1;

   	Threshold(pImg[1],4,0);
	str1.Format(" 的二值图像"); 
 	WriteTitle(pImg[1],m_FileName,str1);                 
	WorkCanvusToWindow(); 
}

void CImageNView::OnEntropicThreshold()
{
	CString	str1;
 
  	Threshold(pImg[1],5,0);
	str1.Format(" 的二值图像"); 
 	WriteTitle(pImg[1],m_FileName,str1);                 
	WorkCanvusToWindow(); 
}

void CImageNView::OnBiasnormalThreshold()
{
	CString	str1;

   	Threshold(pImg[1],6,0);
	str1.Format(" 的二值图像"); 
 	WriteTitle(pImg[1],m_FileName,str1);                 
	WorkCanvusToWindow();                     
}

void CImageNView::OnMomentThreshold()
{
	CString	str1;

  	Threshold(pImg[1],7,0);
	str1.Format(" 的二值图像"); 
 	WriteTitle(pImg[1],m_FileName,str1);                 
	WorkCanvusToWindow();                     
}

void CImageNView::OnColligationThreshold()
{
	CString	str1;
 
 	Threshold(pImg[1],8,0);
	str1.Format(" 的二值图像"); 
 	WriteTitle(pImg[1],m_FileName,str1);                 
	WorkCanvusToWindow();                     
}

void CImageNView::OnSimpleThreshold()
{
	CString	str1;

  	Threshold(pImg[1],9,0);
	str1.Format(" 的二值图像"); 
 	WriteTitle(pImg[1],m_FileName,str1);                 
	WorkCanvusToWindow();                     
}

void CImageNView::OnGradBorddetec()
{
	LocalProcess(pImg[1],1);
	WorkCanvusToWindow();
}

void CImageNView::OnRobertsBorddetec()
{
	LocalProcess(pImg[1],2);
	WorkCanvusToWindow();
}

void CImageNView::OnSobelBorddetec()
{
	LocalProcess(pImg[1],3);
	WorkCanvusToWindow();
}

void CImageNView::OnLaplaceBorddetec()
{
	LocalProcess(pImg[1],4);
	WorkCanvusToWindow();
}

void CImageNView::OnKirschBorddetec()
{
	LocalProcess(pImg[1],5);
	WorkCanvusToWindow();
}

void CImageNView::OnRobinsonBorddetec()
{
	LocalProcess(pImg[1],6);
	WorkCanvusToWindow();
}

void CImageNView::OnPrewittBorddetec()
{
	LocalProcess(pImg[1],7);
	WorkCanvusToWindow();
}

void CImageNView::OnSmooth5()
{
	LocalProcess(pImg[1],8);
	WorkCanvusToWindow();
}

void CImageNView::OnSmooth9()
{
	LocalProcess(pImg[1],9);
	WorkCanvusToWindow();
}

void CImageNView::OnMedian5()
{
	LocalProcess(pImg[1],10);
	WorkCanvusToWindow();
}

void CImageNView::OnMedian9()
{
	LocalProcess(pImg[1],11);
	WorkCanvusToWindow();
}

void CImageNView::OnBoundaryEnhance()
{
	LocalProcess(pImg[1],12);
	WorkCanvusToWindow();
}

void CImageNView::OnLapsketchBorddetec()
{
	LocalProcess(pImg[1],13);
	WorkCanvusToWindow();
}

void CImageNView::OnLoGBorddetec()
{
	LocalProcess(pImg[1],14);
	WorkCanvusToWindow();
}

void CImageNView::OnOneWidthLineDetect()
{
	LocalProcess(pImg[1],15);
	WorkCanvusToWindow();
}

void CImageNView::OnRemoveLineNoise()
{
	LocalProcess(pImg[1],16);
	WorkCanvusToWindow();
}

void CImageNView::OnSobelThinning()
{
	LocalProcess(pImg[1],17);
	WorkCanvusToWindow();
}

void CImageNView::OnLogPrewitt()
{
 	LocalProcess(pImg[1],18);
	WorkCanvusToWindow();                     
}

void CImageNView::OnHilditchThinning()
{
	CurveThinning(pImg[1],pImg[0],1);
	WorkCanvusToWindow();
}

void CImageNView::OnDeutchThinning()
{
	CurveThinning(pImg[1],pImg[0],2);
	WorkCanvusToWindow();
}

void CImageNView::OnFastthinThinning()
{
	CurveThinning(pImg[1],pImg[0],3);
	WorkCanvusToWindow();
}

void CImageNView::OnNaccacheThinning()
{
	CurveThinning(pImg[1],pImg[0],4);
	WorkCanvusToWindow();
}

void CImageNView::OnPavlidis1Thinning()
{
	CurveThinning(pImg[1],pImg[0],5);
	WorkCanvusToWindow();
}

void CImageNView::OnPavlidis2Thinning()
{
	CurveThinning(pImg[1],pImg[0],6);
	WorkCanvusToWindow();
}

void CImageNView::OnRosenfeld4Thinning()
{
	CurveThinning(pImg[1],pImg[0],7);
	WorkCanvusToWindow();
}

void CImageNView::OnRosenfeld8Thinnin()
{
	CurveThinning(pImg[1],pImg[0],8);
	WorkCanvusToWindow();
}

void CImageNView::OnRemoveNoise()
{
	CurveThinning(pImg[1],pImg[0],9);
	WorkCanvusToWindow();
}

void CImageNView::OnDistance()
{
	CString	str1;

 	Distancing(pImg[1]);
 	SetDefaultPalette(pImg[1]);
	str1.Format(" 的索引图像"); 
	WriteTitle(pImg[1],m_FileName,str1); 
	WorkCanvusToWindow();
}
 
void CImageNView::MorphologicA(int n)
{
	struct	IMAGEPARAMENT P;

    ShowCursor(FALSE);
	GetImageParament(pImg[1],&P);
	if (P.nBitCount==1) {
		LowTypeToIndex(pImg[1],pImg[1]);
		ColorToGray(pImg[1],pImg[1]);
	}

 	Morphologic(pImg[2],pImg[1],n);
 	WorkCanvusToWindow();
    ShowCursor(TRUE);
}

void CImageNView::OnErosion()
{
 	MorphologicA(1);
}

void CImageNView::OnDilation()
{
 	MorphologicA(2);
}

void CImageNView::OnInnerBoundary()
{
 	MorphologicA(3);
}

void CImageNView::OnOuterBoundary()
{
 	MorphologicA(4);
}

void CImageNView::OnMorphologyBoundary()
{
 	MorphologicA(5);
}

void CImageNView::OnAreaSkeleton()
{
 	MorphologicA(6);
}

void CImageNView::OnOpening()
{
 	MorphologicA(7);
}

void CImageNView::OnClosing()
{
 	MorphologicA(8);
}

void CImageNView::OnMorphologyThin()
{
 	MorphologicA(9);
}

void CImageNView::OnPatternThin()
{
 	MorphologicA(10);
}

void CImageNView::OnGrayErosion()
{
 	GMorphologic(pImg[2],pImg[1],1);
 	WorkCanvusToWindow();
}

void CImageNView::OnGrayDilation()
{
 	GMorphologic(pImg[2],pImg[1],2);
 	WorkCanvusToWindow();
}

void CImageNView::OnGrayOpenning()
{
 	GMorphologic(pImg[2],pImg[1],3);
 	WorkCanvusToWindow();
}

void CImageNView::OnGrayClosing()
{
 	GMorphologic(pImg[2],pImg[1],4);
 	WorkCanvusToWindow();
}


void CImageNView::OnGrayGrads()
{
 	GMorphologic(pImg[2],pImg[1],5);
 	WorkCanvusToWindow();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -