1、利用 OpenCV 读取图像。
具体内容:用打开 OpenCV 打开图像,并在窗口中显示
2、灰度图像二值化处理
具体内容:设置并调整阈值对图像进行二值化处理。
3、灰度图像的对数变换
具体内容:设置并调整 r 值对图像进行对数变换。
4、灰度图像的伽马变换
具体内容:设置并调整γ值对图像进行伽马变换。
5、彩色图像的补色变换
具体内容:用打开 OpenCV 打开图像,并在窗口中显示
2、灰度图像二值化处理
具体内容:设置并调整阈值对图像进行二值化处理。
3、灰度图像的对数变换
具体内容:设置并调整 r 值对图像进行对数变换。
4、灰度图像的伽马变换
具体内容:设置并调整γ值对图像进行伽马变换。
5、彩色图像的补色变换
具体内容:对彩色图像进行补色变换。
具体实现:在Win32控制台下创建1个新窗口,然后在窗口上添加5个按钮,分别对应“打开图像”,“二值化处理”,”对数变换“,”伽马变换“,”补色变换“这5个功能。
具体代码:
// Test.cpp : 定义控制台应用程序的入口点。
//
#pragma comment(lib,"user32")
#pragma comment(lib,"gbi32")
#include "stdafx.h"
#include <tchar.h>
#include <iostream>
#include <Windows.h>
#include <stdlib.h>
#include <cv.h>
#include <highgui.h>
#include <cxcore.h>
#include <cvaux.h>
//#include <atlstr.h>
#define MAX_STR 100
#define NUM 5
//全局变量
HINSTANCE hInst;//当前实例
TCHAR szTitle[MAX_STR] = _TEXT("Console_Win Demo"); //标题栏文本
TCHAR szWindowClass[MAX_STR] = _TEXT("Console_Win Demo");//主窗口类名
TCHAR* btnName[NUM]={_T("打开图像"),_T("二值化处理"),_T("对数变换"),_T("伽马变换"),_T("补色变换")};
//此代码模块中包含的函数的前向声明:
ATOM MyRegisterClass(HINSTANCE hInstance);
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow);
LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam);
void handleImage(IplImage* src, IplImage* dst, int threshold);
void handleLogImage(IplImage* src, IplImage* dst);
int logfun(int color);
void handleGamaImage(IplImage* src, IplImage* dst);
int gama(int color);
void handleBuseImage(IplImage* src, IplImage* dst);
void buSe(CvScalar &px)