picturebox-影像處理C#程式碼相關問題請大大幫忙修正哪裡錯誤

问题描述

影像處理C#程式碼相關問題請大大幫忙修正哪裡錯誤

公式如圖片程式碼如下:
我已經先把
pictureBox2.Image是IL ==>也是放大後影像
pictureBox3.Image是Iold ==>濾波後的影像

height = this.pictureBox2.Image.Height;
width = this.pictureBox2.Image.Width;
Bitmap bitmap1 = new Bitmap(pictureBox2.Image);
Bitmap bitmap2 = new Bitmap(pictureBox3.Image);
Bitmap bitmap = new Bitmap(width, height);
double[,] image = new double[width, height];
double[,] image0 = new double[width, height];
double[,] image1 = new double[width, height];
double[, ,] image2 = new double[width, height, 30];
double[, ,] image3 = new double[width, height, 30];
double[,] image4 = new double[width, height];
double[, ,] image5 = new double[width, height, 30];
double[, ,] image6 = new double[width, height, 30];

double[,] image1R = new double[width, height];
double[,] image1G = new double[width, height];
double[,] image1B = new double[width, height];

double[,] image2R = new double[width, height];
double[,] image2G = new double[width, height];
double[,] image2B = new double[width, height];

double[,] image3R = new double[width, height];
double[,] image3G = new double[width, height];
double[,] image3B = new double[width, height];

double[,] image4R = new double[width, height];
double[,] image4G = new double[width, height];
double[,] image4B = new double[width, height];

double[, ,] image5R = new double[width, height,30];
double[, ,] image5G = new double[width, height, 30];
double[, ,] image5B = new double[width, height,30];

double[, ,] image6R = new double[width, height,30];
double[, ,] image6G = new double[width, height, 30];
double[, ,] image6B = new double[width, height,30];

double sum = 0;
double sumb = 0;
double dev = 0;
double devb = 0;
double sum0 = 0;
double sum2 = 0;
double dev0 = 0;
double dev1 = 0;
double gray1 = 0;
double graytest0 = 0;
int v = width * height;
//double B = Convert.ToDouble(textBox1.Text);
double C = Convert.ToDouble(textBox2.Text);
for (x = 0; x < width; x++)
{
for (y = 0; y < height; y++)
{
Color c = bitmap1.GetPixel(x, y);
Color c1 = bitmap2.GetPixel(x, y);
image1R[x, y] = c.R;
image1G[x, y] = c.G;
image1B[x, y] = c.B;

image2R[x, y] = c1.R;
image2G[x, y] = c1.G;
image2B[x, y] = c1.B;

image4R[x, y] = c.R;
image4G[x, y] = c.G;
image4B[x, y] = c.B;
}
}
for (int L = 0; L < C; L++)
{
for (x = 0; x < width; x++)
{
for (y = 0; y < height; y++)
{
image3R[x, y] = 0.01 * ((int)(image1R[x, y] - image2R[x, y]));
image3G[x, y] = 0.01 * ((int)(image1G[x, y] - image2G[x, y]));
image3B[x, y] = 0.01 * ((int)(image1B[x, y] - image2B[x, y]));
image4R[x, y] += image3R[x, y];
image4G[x, y] += image3G[x, y];
image4B[x, y] += image3B[x, y];

image0[x, y] = (image1R[x, y] * 0.299 + image1G[x, y] * 0.587 + image1B[x, y] * 0.114);
image4[x, y] = (image4R[x, y] * 0.299 + image4G[x, y] * 0.587 + image4B[x, y] * 0.114);
image2[x, y, L] = image4[x, y];
image5[x, y, L] = image0[x, y];
image5R[x, y, L] = image4[x, y];
image6R[x, y, L] = image4[x, y];
}
}
for (x = 0; x < width; x++)
{
for (y = 0; y < height; y++)
{
image4[x, y] = 0;
}
}
for (x = 0; x < width; x++)
{
for (y = 0; y < height; y++)
{
sum0 += image5R[x, y, L];
}
}
sum2 = sum0 / v;
for (x = 0; x < width; x++)
{
for (y = 0; y < height; y++)
{
dev0 += Math.Pow((image6R[x, y, L]-sum2 ), 2);
}
}
dev1 = Math.Sqrt(dev0 / v)*0.2;//絕對值
for (x = 0; x < width; x++)
{
for (y = 0; y < height; y++)
{
image6[x, y, L] = image5[x, y, L];
image3[x, y, L] = image2[x, y, L];
gray1 += image3[x, y, L]/v;
graytest0 += image6[x, y, L]/v ;
}
}
for (x = 0; x < width; x++)
{
for (y = 0; y < height; y++)
{
Color c = bitmap1.GetPixel(x, y);
image1R[x, y] = c.R;
image1G[x, y] = c.G;
image1B[x, y] = c.B;
image[x, y] = (image1R[x, y] * 0.299 + image1G[x, y] * 0.587 + image1B[x, y] * 0.114);
}
}
for (x = 0; x < width; x++)
{
for (y = 0; y < height; y++)
{
sum += image[x, y];
}
}
sumb = sum / v;
for (x = 0; x < width; x++)
{
for (y = 0; y < height; y++)
{
dev += Math.Pow((image[x, y] -sumb ), 2);
}
}
devb = Math.Sqrt(dev / v)*0.2;

时间: 2024-12-30 22:05:45

picturebox-影像處理C#程式碼相關問題請大大幫忙修正哪裡錯誤的相关文章

影像處理C#程式碼相關問題請大大幫忙修正哪裡錯誤

问题描述 公式如圖片程式碼如下:我已經先把pictureBox2.Image是IL==>也是放大後影像pictureBox3.Image是Iold==>濾波後的影像height=this.pictureBox2.Image.Height;width=this.pictureBox2.Image.Width;Bitmapbitmap1=newBitmap(pictureBox2.Image);Bitmapbitmap2=newBitmap(pictureBox3.Image);Bitmapbit

加密處理使密碼更安全[CFS編碼加密]

安全|加密 你是怎麼把密碼儲存到資料庫裡?是以純文字的方式?你可知道這對安全的危險性?當攻擊你網站的人能開啟資料庫瀏覽,以純文字方式存在資料庫裡的密碼一覽無疑,基於安全上的考量,你想這樣適當嗎?有什麼辦法能夠讓別人看到資料庫裡的資料,也沒辦法知道儲存在其中的密碼? 以上問題你是否知道如何解決?本文要告訴你,如何將你的密碼做加密處理,處理過後的密碼字串,就算是公開出來也沒人猜得到原來的密碼!首先我們來看看一組字串: 27B827277C70E88DD87E3057BFBE8F 這是將密碼加密後的結

加密處理使密碼更安全

安全|加密 你是怎麼把密碼儲存到資料庫裡?是以純文字的方式?你可知道這對安全的危險性?當攻擊你網站的人能開啟資料庫瀏覽,以純文字方式存在資料庫裡的密碼一覽無疑,基於安全上的考量,你想這樣適當嗎?有什麼辦法能夠讓別人看到資料庫裡的資料,也沒辦法知道儲存在其中的密碼? 以上問題你是否知道如何解決?本文要告訴你,如何將你的密碼做加密處理,處理過後的密碼字串,就算是公開出來也沒人猜得到原來的密碼!首先我們來看看一組字串: 27B827277C70E88DD87E3057BFBE8F 這是將密碼加密後的結

請問數字相減問題

问题描述 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Conten

[JSP/Servlet入門]JSP錯誤處理

js|servlet 剛開始撰寫JSP時,總是會被JSP的除錯訊息所困擾,如果沒有稍微瞭解JSP與Servlet之間運作關係的初學者,所看到的只是一堆除錯訊息,甚至例外發生的訊息,這些訊息雖然包括詳細的錯誤訊息,但對於初學者而言卻是不友善.不易閱讀理解的.基本上,只要瞭解JSP與Servlet之間的運作關係,並瞭解Java編譯訊息與例外處理,要瞭解在撰寫JSP網頁時,因錯誤而產生的錯誤報告頁面就不是件難事. 我們知道JSP終究會轉換為Servlet,而運行時真正動作的是Servlet類,所以錯誤

如何處理資料庫中的Null

對於初學者, 在處理資料庫中的 Null 資料型態是有一點麻煩的事, 在這篇文章文章中我們將談談 Null , 你將會了解到如何知道一個值是 Null , 哪些函數可以或不可以處理 Null 首先, 我們必須知道在 VBScript 中, Variant 是唯一的一種資料型態, 對於那些已經熟悉其他語言的程式開發者, 可能會感到有點不習慣. 使用 Variant 的好處在於其相當有彈性, 因為 Variant 可以儲存任何資料類型, 例如, 整數, 字串, 日期時間, 甚至包括物件及陣列.然而彈

C++ 檔案、資料夾、路徑處理函式庫:boost::filesystem

原帖:https://tokyo.zxproxy.com/browse.php?u=uG7kXsFlW1ZmaxKEvCzu8HrCJ0bXIAddA1s5dtIUZ%2FYzM1u9JI7jjKLTXvXJlIqeavUo1Ak%3D&b=6   如果要在 C++ 裡對特定的檔案做存取,其實透過 STL 的 fstream(參考)來做,一般是不會有什麼問題的:相對的,問題比較大的部分,可能會是在於對於資料夾(folder.directory)的處理,以及對於路徑的操作上.像是以路徑來說,Win

ajax-遞歸的方法來處理多層級的地址輸入

问题描述 遞歸的方法來處理多層級的地址輸入 如何用遞歸的方法來處理多層級的地址輸入的問題?或者誰有處理層級的地址資料,發一下給我. 解决方案 你说的地址指的是什么地址,ip地址还是?

請問C#內如何處理BYTE[]字串?

问题描述 一共有兩個問題:1.小弟目前在寫一個C#程式,會使用到一個MFC建立的COM元件(OCX).物件名稱叫做MyOCX.MyOCX有一個function叫做ReadUserData(BYTE*Buf).(我從C#看到這個functionspec變成ReadUserData(refbyteBuf)).這個Buf其實是BYTE[30].內容是一個字串"100".下面是部分的程式碼:byte[]buf=newbyte[30];if(MyOCX.ReadUserData(refbuf[0