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

📄 windem32.c

📁 关于处理图像二值化的程序
💻 C
📖 第 1 页 / 共 2 页
字号:
						sprintf(s_str,"Get Calibrate Param Error = %d",error);
						MessageBox(hwnd,s_str,szAppName,MB_OK | MB_ICONSTOP);

					}
					else
					{
						sprintf(s_str,"Calibrate Param = %d",p_val);
						MessageBox(hwnd,s_str,szAppName,MB_OK | MB_ICONINFORMATION);
					}
				return 0;

			case IDM_SET_ITIME:
					error = get_itime(camera, &ihelp);
					itime = ihelp;
					if(DialogBox (hInst, "SET_ITIME", hwnd, SetITimeDlg) == IDOK)
					{
						error = set_itime(camera, itime);
						if(error)
						{
							sprintf(s_str,"Set Integration Time Error = %d",error);
							MessageBox(hwnd,s_str,szAppName,MB_OK | MB_ICONSTOP);
						}
					}
				return 0;

			case IDM_GET_ITIME:
					error = get_itime(camera, &ihelp);
					if(error)
					{
						sprintf(s_str,"Get Integration Time Error = %d",error);
						MessageBox(hwnd,s_str,szAppName,MB_OK | MB_ICONSTOP);

					}
					else
					{
						sprintf(s_str,"Get Integration Time = %d",ihelp);
						MessageBox(hwnd,s_str,szAppName,MB_OK | MB_ICONINFORMATION);
					}
				return 0;

			case IDM_SET_EXPTIME:
					error = get_integration_time(camera, &exptime);
					
					if(DialogBox (hInst, "SET_EXPTIME", hwnd, SetExpTimeDlg) == IDOK)
					{
						error = set_integration_time(camera, exptime);
						if(error)
						{
							sprintf(s_str,"Set Exposure Time Error = %d",error);
							MessageBox(hwnd,s_str,szAppName,MB_OK | MB_ICONSTOP);
						}
					}
				return 0;

			case IDM_GET_EXPTIME:
					error = get_integration_time(camera, &exptime);
					if(error)
					{
						sprintf(s_str,"Get Integration Time Error = %d",error);
						MessageBox(hwnd,s_str,szAppName,MB_OK | MB_ICONSTOP);

					}
					else
					{
						sprintf(s_str,"Get Integration Time = %d",exptime);
						MessageBox(hwnd,s_str,szAppName,MB_OK | MB_ICONINFORMATION);
					}
				return 0;

			case IDM_SET_GAIN:
					error = get_gain(camera, &gain0,&gain1,&gain2,&gain3,&low_light);
					if(DialogBox (hInst, "SET_GAIN", hwnd, SetGainDlg) == IDOK)
					{
						error = set_gain(camera, gain0, gain1, gain2, gain3, low_light);
						if(error)
						{
							sprintf(s_str,"Set Gain Error = %d",error);
							MessageBox(hwnd,s_str,szAppName,MB_OK | MB_ICONSTOP);
						}
					}
				return 0;

			case IDM_GET_GAIN:
					error = get_gain(camera, &gain0,&gain1,&gain2,&gain3,&low_light);
					if(error)
					{
						sprintf(s_str,"Get Gain Error = %d",error);
						MessageBox(hwnd,s_str,szAppName,MB_OK | MB_ICONSTOP);

					}
					else
					{
						sprintf(s_str,"Get0-3 = %d,%d,%d,%d - LowLight = %d",gain0, gain1, gain2, gain3, low_light);
						MessageBox(hwnd,s_str,szAppName,MB_OK | MB_ICONINFORMATION);
					}
				return 0;

			case IDM_GET_VIDEO_WINDOW:
					error = get_video_window(camera, &wx1, &wy1, &wx2, &wy2);
					if(error)
					{
						sprintf(s_str,"Get Video Window Error = %d",error);
						MessageBox(hwnd,s_str,szAppName,MB_OK | MB_ICONSTOP);

					}
					else
					{
						sprintf(s_str,"Video Window = x1:%d, x2:%d,y1:%d,y2:%d",wx1,wx2,wy1,wy2);
						MessageBox(hwnd,s_str,szAppName,MB_OK | MB_ICONINFORMATION);
					}
				return 0;

			case IDM_SET_VIDEO_WINDOW:
					if(DialogBox (hInst, "SET_VIDEO_WINDOW", hwnd, SetVideoWindowDlg) == IDOK)
					{
						error = set_video_window(camera, wx1, wy1, wx2, wy2);
						if(error)
						{
							sprintf(s_str,"Set Video Window Error = %d",error);
							MessageBox(hwnd,s_str,szAppName,MB_OK | MB_ICONSTOP);
						}
						else
						{
							sprintf(s_str,"Video Window = x1:%d, x2:%d,y1:%d,y2:%d",wx1,wx2,wy1,wy2);
							MessageBox(hwnd,s_str,szAppName,MB_OK | MB_ICONINFORMATION);
							sprintf(s_str,"%ld x %ld",wx2 - wx1 + 1,wy2 - wy1 + 1);
							set_status_bar(2,s_str);
						}
					}
				return 0;

			case IDM_SET_ROW_DELAY:
					error = get_row_delay(camera, &row_delay);
					if(DialogBox (hInst, "SET_ROW_DELAY", hwnd, SetRowDelayDlg) == IDOK)
					{
						error = set_row_delay(camera, row_delay);
						if(error)
						{
							sprintf(s_str,"Set Row Delay Error = %d",error);
							MessageBox(hwnd,s_str,szAppName,MB_OK | MB_ICONSTOP);
						}
					}
				return 0;

			case IDM_GET_ROW_DELAY:
					error = get_row_delay(camera, &row_delay);
					if(error)
					{
						sprintf(s_str,"Get Row Delay Error = %d",error);
						MessageBox(hwnd,s_str,szAppName,MB_OK | MB_ICONSTOP);

					}
					else
					{
						sprintf(s_str,"Get Row Delay = %d",row_delay);
						MessageBox(hwnd,s_str,szAppName,MB_OK | MB_ICONINFORMATION);
					}
				return 0;
			case IDM_SET_FRAME_DELAY:
					error = get_frame_delay(camera, &frame_delay);
					if(DialogBox (hInst, "SET_FRAME_DELAY", hwnd, SetFrameDelayDlg) == IDOK)
					{
						error = set_frame_delay(camera, frame_delay);
						if(error)
						{
							sprintf(s_str,"Set Frame Delay Error = %d",error);
							MessageBox(hwnd,s_str,szAppName,MB_OK | MB_ICONSTOP);
						}
					}
				return 0;

			case IDM_GET_FRAME_DELAY:
					error = get_frame_delay(camera, &frame_delay);
					if(error)
					{
						sprintf(s_str,"Get Frame Delay Error = %d",error);
						MessageBox(hwnd,s_str,szAppName,MB_OK | MB_ICONSTOP);

					}
					else
					{
						sprintf(s_str,"Get Frame Delay = %d",frame_delay);
						MessageBox(hwnd,s_str,szAppName,MB_OK | MB_ICONINFORMATION);
					}
				return 0;
			case IDM_EN_SUBSAMPLING:

					if(DialogBox (hInst, "SET_SUBSAMPLING", hwnd, SetSubsamlingDlg) == IDOK)
					{
						error = enable_subsampling(camera,ss_mode,ss_d_v,ss_d_h,ss_a_v,ss_a_h);
						if(error)
						{
							sprintf(s_str,"Enabling Subsampling Error = %d",error);
							MessageBox(hwnd,s_str,szAppName,MB_OK | MB_ICONSTOP);
						}
						else
							f_subsample=1;
					}
				return 0;

			case IDM_DIS_SUBSAMPLING:
					error = disable_subsampling(camera);
					if(error)
					{
						sprintf(s_str,"Disabling Subsampling Error = %d",error);
						MessageBox(hwnd,s_str,szAppName,MB_OK | MB_ICONSTOP);

					}
					else
						f_subsample=0;
				return 0;

			case IDM_INIT_SNAPSHOT:
					if(DialogBox (hInst, "SET_SNAPSHOT", hwnd, SetSnapshotDlg) == IDOK)
					{
						error = initialize_snapshot(camera,snapshot_trigger, snapshot_shutter, snapshot_reset);
						if(error)
						{
							sprintf(s_str,"Initializing Snapshot Error = %d",error);
							MessageBox(hwnd,s_str,szAppName,MB_OK | MB_ICONSTOP);
						}
					}

				return 0;

			case IDM_SET_SNAPSHOT_TRIGGER_AKTIV:
					error = set_snapshot_trigger_line(camera,1, 1);
					if(error)
					{
						sprintf(s_str,"Set Snapshot Error = %d",error);
						MessageBox(hwnd,s_str,szAppName,MB_OK | MB_ICONSTOP);

					}
				return 0;
			case IDM_SET_SNAPSHOT_TRIGGER_INAKTIV:
					error = set_snapshot_trigger_line(camera,1, 0);
					if(error)
					{
						sprintf(s_str,"Set Snapshot Error = %d",error);
						MessageBox(hwnd,s_str,szAppName,MB_OK | MB_ICONSTOP);

					}
				return 0;

			case IDM_DIS_SNAPSHOT:
					error = disable_snapshot(camera);
					if(error)
					{
						sprintf(s_str,"Disable Snapshot Error = %d",error);
						MessageBox(hwnd,s_str,szAppName,MB_OK | MB_ICONSTOP);

					}
				return 0;

			case IDM_LUT_NORMAL:
					CheckMenuItem(GetMenu(hwnd),IDM_LUT_NORMAL,MF_CHECKED);		
					CheckMenuItem(GetMenu(hwnd),IDM_LUT_INVERS,MF_UNCHECKED);
					CheckMenuItem(GetMenu(hwnd),IDM_LUT_LOWLIGHT,MF_UNCHECKED);
					SetLUT(0);
				return 0;

			case IDM_LUT_INVERS:
					CheckMenuItem(GetMenu(hwnd),IDM_LUT_NORMAL,MF_UNCHECKED);		
					CheckMenuItem(GetMenu(hwnd),IDM_LUT_INVERS,MF_CHECKED);
					CheckMenuItem(GetMenu(hwnd),IDM_LUT_LOWLIGHT,MF_UNCHECKED);
					SetLUT(1);
				return 0;

			case IDM_LUT_LOWLIGHT:
					CheckMenuItem(GetMenu(hwnd),IDM_LUT_NORMAL,MF_UNCHECKED);		
					CheckMenuItem(GetMenu(hwnd),IDM_LUT_INVERS,MF_UNCHECKED);
					CheckMenuItem(GetMenu(hwnd),IDM_LUT_LOWLIGHT,MF_CHECKED);
					SetLUT(2);
				return 0;

			case IDM_SET_GRAB_PARAM:
					if(DialogBox (hInst, "SET_GRABPARAMDLG", hwnd, SetGrabParamDlg) == IDOK)
					{
						error = set_grab_param(camera, img_cnt,fpga_mem_offset);
						if(error)
						{
							sprintf(s_str,"Set grab param error = %d",error);
							MessageBox(hwnd,s_str,szAppName,MB_OK | MB_ICONSTOP);
						}
						else
						{
							GetClientRect(hwndClient,&r);
							cw = r.right - r.left;
							ch = r.bottom - r.top;
							get_video_window(camera,&x1,&y1,&x2,&y2);
							iwidth = x2 - x1 +1;
							iheight = y2 - y1+1;
							if(img_cnt > 1)
								iheight = (fpga_mem_offset * (int)(img_cnt)) / iwidth;
							set_scroll_bar(hwndClient,cw, iwidth, ch , iheight);
						}
					}
				return 0;

			case IDM_FPGA_READ_WRITE:
					DialogBox (hInst, "FPGADLG", hwnd, SetFPGADlg) ;
				return 0;

			case IDM_WB:
					if(wb)
					{
						wb=0;
						CheckMenuItem(GetMenu(hwnd),IDM_WB,MF_UNCHECKED);
					}
					else
					{
						wb=1;
						CheckMenuItem(GetMenu(hwnd),IDM_WB,MF_CHECKED);
					}
				return 0;

			case IDM_CAN:
					DialogBox (hInst, "CAN_DLG", hwnd, CANDlg) ;
				return 0;
		}
		break ;
		
		
		case WM_PAINT:
			PaintDC = BeginPaint(hwnd,&ps);
			EndPaint(hwnd, &ps);
			return 0;
			
		case WM_DESTROY :
			if(!params.bKill)
			{
				params.bKill = TRUE;
				CloseHandle(hThread1);
			}
			if(hBitmapInfo)
			{
				GlobalUnlock(hBitmapInfo),
				GlobalFree(hBitmapInfo);
			}
			close_cancam(camera);			// Close CANCam
			PostQuitMessage (0) ;
			return 0 ;
			
			case WM_SIZE:
				{
					HDWP hDWP;
					RECT rc;
					GetClientRect( hwnd, &rc );

					hDWP = BeginDeferWindowPos( 2 );
					DeferWindowPos( hDWP, hwndClient, NULL, 0, 0, 
								rc.right, rc.bottom-g_nStatusbarOffset,SWP_NOZORDER );
					
					DeferWindowPos( hDWP, hwndStatusBar, NULL, 
										0, rc.bottom-g_nStatusbarOffset, g_nStatusbarOffset, rc.left,SWP_NOZORDER );
					EndDeferWindowPos( hDWP );

				}
				return 0;
		
		}
		return DefWindowProc (hwnd, iMsg, wParam, lParam) ;
}


LRESULT CALLBACK WndProcClient (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
	static HDC PaintDC;
	static HPALETTE	  OldPal=NULL,hPal;
	DWORD ptradr;
	BYTE *PPixel;
	PAINTSTRUCT ps;
	char s_str[50];
	int lx,ly;

	switch (iMsg)
	{

			case WM_CREATE :
				vPos = 0;
				hPos = 0;
				return 0;

			case WM_SIZE:
				set_scroll_bar(hwnd,LOWORD(lParam), width, HIWORD(lParam) , height);
				if(BMPFlag)
					InvalidateRect(hwnd,NULL,FALSE);
				return 0;

		case WM_VSCROLL :
			switch (LOWORD (wParam))
			{
				case SB_LINEUP :
				if(vPos > 0)
					vPos -= 1;
				break ;
				
			case SB_LINEDOWN :
				if(vPos < vPosRange)
					vPos += 1;
				break ;
				
			case SB_PAGEUP :
				if(vPos > 10)
					vPos -= 10;
				break ;
				
			case SB_PAGEDOWN:
				if(vPos < vPosRange -10)
					vPos += 10;
				break ;
				
			case SB_THUMBPOSITION :
			case SB_THUMBTRACK :
				vPos = HIWORD (wParam);
				break ;
				
			default :
				break ;
			}
			
			vPos = max(0,min(vPos,vPosRange));

			if(vPos != GetScrollPos(hwnd,SB_VERT))
			{
				SetScrollPos(hwnd, SB_VERT, vPos, TRUE) ;
				if(BMPFlag)
					InvalidateRect(hwnd,NULL,FALSE);
			}
			return 0 ;
		
		case WM_HSCROLL :
			switch (LOWORD (wParam))
			{
				case SB_LINELEFT :
				if(hPos > 0)
					hPos -= 1;
				break ;
				
			case SB_LINERIGHT :
				if(hPos < hPosRange)
					hPos += 1;
				break ;
				
			case SB_PAGELEFT :
				if(hPos > 10)
					hPos -= 10;
				break ;
				
			case SB_PAGERIGHT:
				if(hPos < hPosRange -10)
					hPos += 10;
				break ;
				
			case SB_LEFT :
				hPos = 0;
				break;
						
			case SB_RIGHT :
				hPos = width;
				break ;

			case SB_THUMBPOSITION :
			case SB_THUMBTRACK :
				hPos = HIWORD (wParam);
				break ;
				
			default :
				break ;
			}
			
			hPos = max(0,min(hPos,hPosRange));

			if(hPos != GetScrollPos(hwnd,SB_HORZ))
			{
				SetScrollPos(hwnd, SB_HORZ, hPos, TRUE) ;
				if(BMPFlag)
					InvalidateRect(hwnd,NULL,FALSE);
			}
			return 0 ;

		case WM_PAINT:
			PaintDC = BeginPaint(hwnd,&ps);
			if(BMPFlag)
			{
					if(sensor_type == 0)
					{
						get_pixel_ptr(camera,0,&ptradr);
						PPixel = (BYTE *)ptradr;
						OldPal = SetBMPPalette(PaintDC,hwnd,&hPal);     // set black/white palette 
					}
					else
						PPixel = Prgb;

					SetDIBitsToDevice(PaintDC,0,0,width,height,hPos,0,vPos,height,
					PPixel,(LPBITMAPINFO)get_bitmap_info(),DIB_RGB_COLORS);

					if(sensor_type == 0)
					{
						SelectPalette(PaintDC, OldPal, FALSE);    // set old palette 
						DeleteObject(hPal);
					}
			}
			EndPaint(hwnd, &ps);
			return 0;

		case WM_MOUSEMOVE:

				if(BMPFlag)
				{
					SetCursor (LoadCursor (NULL, IDC_CROSS)) ;

					lx = LOWORD (lParam) + hPos;
					ly = HIWORD (lParam) + vPos;

					get_pixel_ptr(camera,0,&ptradr);
					PPixel = (unsigned char *)(ptradr + ((int)width * ly) + lx);
					sprintf(s_str,"(%d,%d) / %d",lx,ly,(unsigned char)*PPixel);
				}
				else
				{
					SetCursor (LoadCursor (NULL, IDC_ARROW)) ;
					sprintf(s_str,"");
				}

				set_status_bar(1,s_str);
				return 0;
	}
	return DefWindowProc (hwnd, iMsg, wParam, lParam) ;
}

⌨️ 快捷键说明

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