與D90的中國之旅!充滿拍拍的樂趣與驚喜,還有很多很多的腳很酸XDDD
2011年8月29日 星期一
2011年8月10日 星期三
2011年8月5日 星期五
2011年4月9日 星期六
2011年2月24日 星期四
正體中文化JLS Encoder
JPEG-LS編碼器
JLSEncoder.exe
因為來源失連
且原始程式為英文介面,為了讓剛拿到的程式的人快速上手
對使用者介面(UI)進行中文化,並翻譯和保留原文方便中英對照說明
原始來源:
Using V2.2 of the SPMG JPEG-LS codec with default parameters (http://spmg.ece.ubc.ca).
2010年11月26日 星期五
在DEV-C++環境使用OpenCV-2.1.0-win32-vs2008計算PSNR範例[程式碼篇]
在DEV-C++環境
使用OpenCV
計算PSNR範例
環境:
DEV-C++ :devcpp-4.9.9.2_setup.exe
opencv :OpenCV-2.1.0-win32-vs2008.exe
上次提到
上網 Google一下
------------------------------------------------------------------
網友patrick
OPENCV PSNR计算方法
http://quntingyang.spaces.live.com/blog/cns!531ADA1CF4C7FF2E!272.entry
------------------------------------------------------------------
カクタス榎木
------------------------------------------------------------------
都有寫好的範例
而且還好心的函式化了
想要快速使用
直接呼叫(call function)或改寫成主程式(main)都是不錯的好方法
要惡補OpenCV語法的
可以在本系學長的 "昨日OpenCV"網站溫習一下
昨日OpenCV: http://yester-place.blogspot.com/
所以本次就來完補啦
立即撰寫一個範例
將函式再度改回主程式(main)
本範例改寫
網友patrick
OPENCV PSNR计算方法
先奉上程式碼,可以看註解,後面有補說明
解說之彩色網頁程式碼轉換顯示 使用: c# code format 網站
#include <cv.h>
#include <highgui.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
int main()
{
double totalValue=0;
double psnr=0.0;
IplImage *srcImage = cvLoadImage("House512.BMP",1);
IplImage *dstImage = cvLoadImage("House5122.BMP",1);
int NR(srcImage->height),NC(srcImage->width);
if (srcImage->width!=dstImage->width||srcImage->height!=dstImage->height)
{
std::cout<<"usage: Two images must have same size!"<<std::endl;
return FALSE;
}else if (srcImage->nChannels!=dstImage->nChannels)
{
std::cout<<"usage:Two images must have same channels\n 1 dimension\n 3 dimension\n";
return FALSE;
}
//若圖片是灰階,直接算totalValue
else if (srcImage->nChannels==1||dstImage->nChannels==1)
{
for (int i=0;i<NR;i++)
{
for (int j=0;j<NC;j++)
{
double s1 = cvGetReal2D(srcImage,i,j);//取得像素值
double s2 = cvGetReal2D(dstImage,i,j);
double sub = s1-s2;
totalValue +=pow(sub,2);
}
}
}
//若圖片是彩色,先轉灰階後,計算totalValue
else if(srcImage->nChannels==3||dstImage->nChannels==3)
{
IplImage *srcData = 0, *dstData= 0;
srcData = cvCreateImage( cvSize(NR, NC), IPL_DEPTH_8U, 1 );
dstData = cvCreateImage( cvSize(NR, NC), IPL_DEPTH_8U, 1 );
cvCvtColor(srcImage,srcData,CV_BGR2GRAY);
cvCvtColor(dstImage,dstData,CV_BGR2GRAY);
for (int i=0;i<NR;i++)
{
for (int j=0;j<NC;j++)
{
double s1 = cvGetReal2D(srcData,i,j);//取得像素值
double s2 = cvGetReal2D(dstData,i,j);
double sub = s1-s2;
totalValue +=pow(sub,2);
}
}
}
if (fabs(totalValue) < 1e-6)
{
psnr = 0;
}
else
{
double meanValue = totalValue/(NR*NC);
psnr = 10*log((255*255)/meanValue);
}
printf("\n計算PSNR為:%f\n",psnr);
system("pause");
//return TRUE;
}
■引用說明:
#include //宣告IplImage所需
#include //宣告 cvLoadImage 所需
■宣告說明:
IplImage //OpenCV Image物件 ;物件化圖片,並給予結構如之後有用到的 ->height、->width
■OpenCV函式說明:
cvLoadImage
/* OpenCV 載入圖片函式 結構為CVAPI(IplImage*) cvLoadImage( const char* filename, int iscolor CV_DEFAULT(CV_LOAD_IMAGE_COLOR)); */
cvGetReal2D(Image物件,i,j);//取得像素值
/* 是取得Image物件裡面(row,column)
*/
■變數說明:
nChannels // ==1 是灰階; ==3是全彩
1e-6 //我們通常會用一個不合理的狀況作為例外排除,而通常是使用-1或1e-6
■C++基本語法...
std::cout<<"X"<<std::endl //印X
2010年11月7日 星期日
在DEV-C++環境使用OpenCV-2.1.0-win32-vs2008計算PSNR範例[環境設定篇]
在DEV-C++環境
使用OpenCV
計算PSNR範例
環境:
DEV-C++ :devcpp-4.9.9.2_setup.exe
opencv :OpenCV-2.1.0-win32-vs2008.exe
很久沒有Open CV了,倒是很長Open GL
稍稍整理了網路上的OpenCV教學
發現新版OpenCV-2.1.0-win32-vs2008.exe
剛好學弟們在修影像處理
快速解決一下他們的疑難雜症
首先是
OpenCV-2.1.0-win32-vs2008.exe安裝教學
設定
我們將假設OpenCV是安裝在C:\Program Files\OpenCV的 目錄。
首先,選擇 工具“>編譯器選項。


之前舊版OpenCV 是添加...
-L"C:\Program Files\OpenCV\lib" -lcxcore -lcv -lcvaux -lhighgui -lml -lcvcam
但新版OpenCV 2.1 請填:
-L"C:\OpenCV2.1\lib" -lcxcore210 -lcv210 -lcvaux210 -lhighgui210 -lml210
Include files的設定
接下來,點擊 目錄 ,
然後在 C Include files 添加
對於OpenCV2.x沒有 otherlibs \ highgui 文件夾
C:\Program Files\OpenCV2.1\include\opencv

當然,如果你想編寫C + +程序,
在 C + + Include files 再同樣做一次
函式庫的設定
因此只需添加 C:\Program FIles\OpenCV2.x\bin 就足夠了。

讓我們選擇一個C程式在 OpenCV的 samples目錄中 ,

動態庫文件的配置
並完成,添加的bin目錄下的DLL:

測試
並嘗試執行它,按下鍵盤 F9鍵。 正如你所看到的,編譯過了。
範例目錄:C:\OpenCV2.1\samples
上網 Google一下
------------------------------------------------------------------
網友patrick
OPENCV PSNR计算方法
http://quntingyang.spaces.live.com/blog/cns!531ADA1CF4C7FF2E!272.entry
------------------------------------------------------------------
カクタス榎木
------------------------------------------------------------------
都有寫好的範例
而且還好心的函式化了
想要快速使用
直接呼叫(call function)或改寫成主程式(main)都是不錯的好方法
要惡補OpenCV語法的
可以在本系學長的 "昨日OpenCV"網站溫習一下
昨日OpenCV: http://yester-place.blogspot.com/
孩子們 加油吧!
送佛送到中間,西天要自己去,阿!是西經要自己取啦....
別再說Google咕不到了....
訂閱:
文章 (Atom)
評估xxx函式逾時,且需以不安全的方法中止。這可能使目標處理序損毀。
評估xxx函式逾時,且需以不安全的方法中止。這可能使目標處理序損毀。 我選擇直接停用 [啟用屬性評估及其他隱含函式呼叫] --------------------------- Microsoft Visual Studio -------------------...
-
visual studio cant open cshtml 我的 Visual Studio 2015 突然不能用[方案總管] 開啟 .cshtml檔案 用搜尋的列出檔案後也打不開.cshtml檔案 總會顯示: ----------------------...
-
https://github.com/abkonsta/NLog.Extensions.AzureTableStorage 我裝了這些 NLog.config 去Azure的管理介面拿金鑰選項中的主要連接字串 設定-> 管理金鑰->...
-
[Linker Fatal Error] {解決方案} 這幾天因為接觸GifImage 2.2 and BCB5 BCB6 看到網路上有人提出網路上的問題(如下)想一個解決方案,跟大家分享。 http://www.delphigroups.info/3/6/143309.htm...























