1. 程式人生 > >C# PictureBox 顯示單通道灰度圖

C# PictureBox 顯示單通道灰度圖

// 定義灰度調色盤

System.Drawing.Imaging.ColorPalette GreyColorPalette = null;

// 定義新Bitmap影象

System.Drawing.Bitmap newBitmap = null;

// 讀取BitMap影象

System.Drawing.Bitmap curBitmap = new Bitmap("00.bmp");

// 定義處理區域

Rectangle rect = new Rectangle(0, 0, curBitmap.Width, curBitmap.Height);

// 獲取畫素資料

System.Drawing.Imaging.BitmapData bmpData = curBitmap.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadOnly, curBitmap.PixelFormat);

// 獲取畫素資料指標

IntPtr IntPtrPixelData = bmpData.Scan0;

// 定義Buffer

byte[] PixelDataBuffer = new byte[curBitmap.Width * curBitmap.Height];

// 拷貝Bitmap的畫素資料的到Buffer

System.Runtime.InteropServices.Marshal.Copy(IntPtrPixelData, PixelDataBuffer, 0, PixelDataBuffer.Length);



unsafe
{
    fixed (byte* pSrc = PixelDataBuffer)
{ 
newBitmap = new Bitmap(curBitmap.Width, curBitmap.Height, curBitmap.Width, System.Drawing.Imaging.PixelFormat.Format8bppIndexed, new IntPtr(pSrc));


GreyColorPalette = newBitmap.Palette;
for (int Index = 0; Index <= byte.MaxValue; Index++)
{
    GreyColorPalette.Entries[Index] = Color.FromArgb(byte.MaxValue, Index, Index, Index);
}
newBitmap.Palette = GreyColorPalette;
newBitmap.Save("newBitmap.bmp");
pictureBox1.Image = newBitmap;

相關推薦

C# PictureBox 顯示通道

// 定義灰度調色盤 System.Drawing.Imaging.ColorPalette GreyColorPalette = null; // 定義新Bitmap影象 System.Draw

通道圖片fine-tune訓練網路與caffe批量分類測試

1. 轉imdb灰度圖資料 一定要加上--gray,否則訓練時報如下錯誤: GLOG_logtostderr=1 $TOOLS/convert_imageset \ --resize_height=$RESIZE_HEIGHT \ --resize_w

C#getPixel和內存法讀取信息

max post scan ppa private p s pda unlock bsp getPixel方法: private int getPixels(Bitmap bmpobj) { int[,] data

Opencv入門筆記(1):影象載入、顯示、儲存、轉換

影象載入、顯示、儲存函式: 1         影象載入函式:imread()   Mat imread(const string& filename, int flags=1);     const string&型別的filename為載入影象的路徑(

OpenCV--影象的反色與顯示

對於單通道影象: void Invert1(){ Mat src,dest; src = imread("lena.jpg"); if(!src.data){

【第二課:C++和opencv】改為和儲存圖片

這個程式和【第一課】差不多,只是增加儲存函式imwrite()和cvtColor() 【編譯環境:opencv2.4.4和VS2008】 #include "stdafx.h" #include "opencv2/opencv.hpp" using namespace c

MFC CView 顯示示例

實現灰度貼圖,強調3個點: 1) CView定時重新整理其顯示,這在OnTimer裡實現: ::SetStretchBltMode(m_dcMem.GetSafeHdc(), COLORONCOLOR); StretchDIBits(m_dcMem.GetSafe

C#由指定資料生成點陣或者彩色點陣

如果有一組影象資料儲存在一維陣列中,如下所示,影象資料儲存在一維陣列ImageData中,現在想要這組資料建立一幅灰度影象或者彩色影象,那該如何建立呢?不急,請往下看。 //影象資料 byte[] ImageData = n

,3通道RGB的“”,二值影象

在OpenCV中有倆巨集: COLOR_BGR2GRAY 與 COLOR_GRAY2BGR 這倆巨集主要應用在顏色空間轉換函式cvtColor函式中: cvtColor(srcImage,dstImage, COLOR_BGR2GRAY); cvtColor(srcI

C# 生成8位bmp

public static void SaveBmp8(Bitmap bitmap,string savePath) { int width = bitmap.Width; int height = bitmap.Height;

C#實現把彩色圖片化代碼分享

turn pub mil int stride 方法 wid blue 節點 彩色圖片轉為灰度圖的公式如下: 代碼如下: gray(i,j) = 0.299 * Red(i,j)+0.587*Green(i,j)+0.114*Blue(i,j) 其中gray(i,j

像的直方圖

bst line [] 數據 mat == str body system 主要代碼如下: package chapter6; import java.awt.*; import java.awt.geom.Rectangle2D; import java.awt.imag

opencv生成並保存

other ims int empty ray size AC ret out #include <opencv2/opencv.hpp>#include <iostream> using namespace cv;using namespace s

的直方圖均衡化(Histogram Equalization)原理與 Python 實現

p { margin-bottom: 0.1in; direction: ltr; line-height: 120%; text-align: justify; orphans: 0; widows: 0 } 原理   直方圖均衡化是一種通過使用影象直方圖,調整對比度的影象處理方法;通過對影象的強度(i

opencv讀取圖片並轉化為,並調整視窗大小

Mat src_color = imread(路徑名);//讀取原彩色圖 int c=src_color.cols/2; int r=src_color.rows/2; Mat src_gray;//彩色影象轉化成灰度圖 cvtColor(src_color, src_gray,

opencv將轉為彩色

使用opencv將一幅灰度圖轉為彩色圖。 使用函式:cvtColor();     Mat imgGray= imread("gray.jpg",0);     Mat imgRGB;     cvtColor(

(IR )轉成 RGB 預覽,畫面出現光斑/黃斑問題解決

一、背景 存在一個 IR 圖(紅外線 Infrared Radiation),需要在頁面上顯示出來,IR 圖片格式是 gray8,即 8 位的灰度圖。 Android 上的 Bitmap 圖片格式使用的是 ARGB_8888,所以需要把灰度圖轉 ARGB 圖,每個通道都為 8 位

使用K-means演算法聚類

github資料集: 智慧演算法的課件和參考資料以及實驗程式碼 我們可以用k-means演算法將灰度圖分成N個梯度 我們知道,一般的彩色影象指的是在RGB顏色空間下的影象,這樣的影象三個通道分別是R(red)G(green)B(blue)。而灰度圖指的是單通道的,將三通道的影象

基於FPGA的彩色演算法

一、演算法基礎 對於彩色轉灰度,有一個很著名的心理學公式:Gray = R0.299 + G0.587 + B*0.114; 來自於RGB888 to YCbCr的演算法公式,我們可以直接把演算法移植到FPGA上,但是我們都知道FPGA無法進行浮點運算,所以我們採取將整個式子右端先都擴大

esp32~外接攝像頭OV7255

1. 硬體接線 如下圖,github上說接線儘可能短不然噪音會很大,於是我把杜邦線給剪了又連上。 按照下面接線,使能端和地並上一個電容,這個電容用來幹嘛的(問過大佬,我又忘了。。) 2. 實際效果 3. 分析不能正常執行的原因 由於目前經驗不足,也摸不著底,不清楚d