『壹』 求matlab彩色圖片的顏色特徵提取演算法的代碼,和紋理特徵提取的代碼。傳統方法即可。
其實學數字圖像處理,關鍵的不是源代碼(和一般編程還是有區別的,這個是經驗之談,其實一般博導未必會編程,但是你和他說說你的方法,他一般都能切中要害),而是你能理解基於概念及適用場所。
基於顏色、紋理、形狀都屬於低層特徵,這些你理解就夠了,關鍵是對你的課題適合哪種方法來映射到高層語義上面,例如:識別物體輪廓,那可能形狀就比較適合等。
我之所以寫上面那段話,主要是我感覺你索取代碼也不說明具體要求,也就是方向不明確。
如今顏色特徵提取演算法有很多,諸如顏色直方圖、顏色矩、顏色集、顏色聚合向量、顏色相關圖等,既然你沒說,我就給個IEEE CSVT 2001的一篇關於顏色直方圖法的論文(源碼版權歸作者所有):
function colorhist = colorhist(rgb)
% CBIR_colorhist() --- color histogram calculation
% input: MxNx3 image data, in RGB
% output: 1x256 colorhistogram == (HxSxV = 16x4x4)
% as the MPEG-7 generic color histogram descriptor
% [Ref] Manjunath, B.S.; Ohm, J.-R.; Vasudevan, V.V.; Yamada, A., "Color and texture descriptors"
% IEEE Trans. CSVT, Volume: 11 Issue: 6 , Page(s): 703 -715, June 2001 (section III.B)
% check input
if size(rgb,3)~=3
error('3 components is needed for histogram');
end
% globals
H_BITS = 4; S_BITS = 2; V_BITS = 2;
%rgb2hsv可用rgb2hsi代替,見你以前的提問。
hsv = uint8(255*rgb2hsv(rgb));
imgsize = size(hsv);
% get rid of irrelevant boundaries
i0=round(0.05*imgsize(1)); i1=round(0.95*imgsize(1));
j0=round(0.05*imgsize(2)); j1=round(0.95*imgsize(2));
hsv = hsv(i0:i1, j0:j1, :);
% histogram
for i = 1 : 2^H_BITS
for j = 1 : 2^S_BITS
for k = 1 : 2^V_BITS
colorhist(i,j,k) = sum(sum( ...
bitshift(hsv(:,:,1),-(8-H_BITS))==i-1 &...
bitshift(hsv(:,:,2),-(8-S_BITS))==j-1 &...
bitshift(hsv(:,:,3),-(8-V_BITS))==k-1 ));
end
end
end
colorhist = reshape(colorhist, 1, 2^(H_BITS+S_BITS+V_BITS));
% normalize
colorhist = colorhist/sum(colorhist);
%基於紋理特徵提取灰度共生矩陣用於紋理判斷
% Calculates cooccurrence matrix
% for a given direction and distance
%
% out = cooccurrence (input, dir, dist, symmetric);
%
% INPUT:
% input: input matrix of any size
%
% dir: direction of evaluation
% "dir" value Angle
% 0 0
% 1 -45
% 2 -90
% 3 -135
% 4 -180
% 5 +135
% 6 +90
% 7 +45
%
% dist: distance between pixels
%
% symmetric: 1 for symmetric version
% 0 for non-symmetric version
%
% eg: out = cooccurrence (input, 0, 1, 1);
% Author: Baran Aydogan (15.07.2006)
% RGI, Tampere University of Technology
% [email protected]
function out = cooccurrence (input, dir, dist, symmetric);
input = round(input);
[r c] = size(input);
min_intensity = min(min(input));
max_intensity = max(max(input));
out = zeros(max_intensity-min_intensity+1);
if (dir == 0)
dir_x = 0; dir_y = 1;
end
if (dir == 1)
dir_x = 1; dir_y = 1;
end
if (dir == 2)
dir_x = 1; dir_y = 0;
end
if (dir == 3)
dir_x = 1; dir_y = -1;
end
if (dir == 4)
dir_x = 0; dir_y = -1;
end
if (dir == 5)
dir_x = -1; dir_y = -1;
end
if (dir == 6)
dir_x = -1; dir_y = 0;
end
if (dir == 7)
dir_x = -1; dir_y = 1;
end
dir_x = dir_x*dist;
dir_y = dir_y*dist;
out_ind_x = 0;
out_ind_y = 0;
for intensity1 = min_intensity:max_intensity
out_ind_x = out_ind_x + 1;
out_ind_y = 0;
[ind_x1 ind_y1] = find (input == intensity1);
ind_x1 = ind_x1 + dir_x;
ind_y1 = ind_y1 + dir_y;
for intensity2 = min_intensity:max_intensity
out_ind_y = out_ind_y + 1;
[ind_x2 ind_y2] = find (input == intensity2);
count = 0;
for i = 1:size(ind_x1,1)
for j = 1:size(ind_x2,1)
if ( (ind_x1(i) == ind_x2(j)) && (ind_y1(i) == ind_y2(j)) )
count = count + 1;
end
end
end
out(out_ind_x, out_ind_y) = count;
end
end
if (symmetric)
if (dir < 4)
dir = dir + 4;
else
dir = mod(dir,4);
end
out = out + cooccurrence (input, dir, dist, 0);
end
PS就可以做到。。
先用橡皮給擦掉日文的,然後用仿復章工具把背景復製成一樣。最後添加你自己要的文字!!!1
『叄』 怎樣提取圖片里的文字背景色是白色的
1.按i鍵,選取字體顏色.
2.選擇--色彩范圍.
3在調整一下就可以了
『肆』 怎麼把圖片里的文字提取出來
用軟體可以將圖片里的文字提取出來。『伍』 如何處理大量的彩色的帶有文字的圖片,提取文字。
1、如果有PDF格式文件,且文字沒有柵格化,可用adobe Illustrator、adobe Reader、adobe Acrobat等軟體直接打開,復制文字。
2、如果有PDF格式文件,文字已經柵格化或已經成為圖片,且圖片解析度較高,可以OCR之類的軟體自動識別文字(但仍需手人工校對)
3、如果只有圖片,且圖片解析度不高,此情況下文字識別軟體識別率太低,不如直接打字來得快。
『陸』 如何將圖片中的文字提取然後做成圖標
使用尚書7號,專門掃描圖片上的文字,然後轉換成文本.
『柒』 如何將圖片中的文字提取出來
如果是單純的底色
就用PHOTOSHOP
先把底色選種
然後反選一次
這個樣子所有於底色顏色有差別的文字就全出來了
、首先使用SnagIt的文字捕捉功能將文字提取出來。SnagIt當前版本為7.02,大小為8903KB,下載地址可以在http://www.skycn.com/soft/2290.html找到,漢化補丁可以在http://www.skycn.com/soft/2291.html找到。啟動SnagIt,選擇菜單「輸入/區域」,選擇菜單「工具/文字捕獲」,然後我們打開要捕捉的文件窗口,按下捕捉快捷鍵,選定捕捉區域即可捕捉到文字。
接著用相應工具重排文字。此時我們發現提取的文字可能會有很多空格或段落錯亂等現象,而且字型大小、字體等不合自己的心意。這時我們可以用熟悉的WPS或Word軟體進行重新編排。我們以WPSOffice2003為例看看如何對付提取後文章的編排。
用WPSOffice2003打開提取文章;然後選擇「工具」菜單下的「文字」/「段落重排」,這時你會看到提取文章重新進行排版;接下來選擇「工具」菜單下的「文字」/「刪除段首空格」命令,使得文章的每段參差不齊的行首空格被刪除;再選擇「工具」菜單下的「文字」/「增加段首空格」,文章變為正常的書寫格式;提取文章一般都留有空段,為刪除這些空段,繼續選擇「工具」菜單下的「文字」/「刪除空段」命令,這時文章完全變為我們所要的形式;用你熟悉的界面任意編輯文章吧。
2、用OCR軟體可以識別圖片中的文字,但要求圖片中文字清晰,最好是整塊整塊的。
這類軟體很多,如尚書OCR,清華OCR等。
『捌』 如何用c++編程實現提取給定圖像中任意一點的RGB顏色值
控制台 讀取BMP圖片文件 輸出指定點的顏色分量
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
typedef unsigned long DWORD;
typedef int BOOL;
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef struct tagBITMAPINFOHEADER{
DWORD biSize;
long biWidth;
long biHeight;
WORD biPlanes;
WORD biBitCount;
DWORD biCompression;
DWORD biSizeImage;
long biXPelsPerMeter;
long biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrImportant;
} BITMAPINFOHEADER;
int ReadBmp(const char* szFileName);
int GetDIBColor(int X, int Y, BYTE *r, BYTE *g, BYTE *b);
BITMAPINFOHEADER bih;
BYTE *Buffer = NULL;
long LineByteWidth;
int main(void)
{
int x, y;
BYTE r, g, b;
int n;
char szfilename[255] = "c:\\1.bmp";
if (ReadBmp(szfilename) == 0)
{
printf("failure to read file %s", szfilename);
return 1;
}
printf("Width: %ld\n", bih.biWidth);
printf("Height: %ld\n", bih.biHeight);
printf("BitCount: %d\n\n", (int)bih.biBitCount);
while(1)
{
printf("input the X:");
scanf("%d", &x);
if (x < 0)
break;
printf("input the Y:");
scanf("%d", &y);
if (GetDIBColor(x, y, &r, &g, &b) == 1)
printf("(%d, %d): r:%d, g:%d, b:%d\n", x, y, (int)r, (int)g, (int)b);
else
printf("input error.\n");
}
free(Buffer);
return 0;
}
int ReadBmp(const char* szFileName)
{
FILE *file;
WORD bfh[7];
long dpixeladd;
if (NULL == (file = fopen(szFileName, "rb")))
{
return 0;
}
printf("%s\n", szFileName);
fread(&bfh, sizeof(WORD), 7, file);
if (bfh[0] != (WORD)(((WORD)'B')|('M'<<8)))
{
fclose(file);
return 0;
}
fread(&bih, sizeof(BITMAPINFOHEADER), 1, file);
if (bih.biBitCount < 24)
{
fclose(file);
return 0;
}
dpixeladd = bih.biBitCount / 8;
LineByteWidth = bih.biWidth * (dpixeladd);
if ((LineByteWidth % 4) != 0)
LineByteWidth += 4 - (LineByteWidth % 4);
if ((Buffer = (BYTE*)malloc(sizeof(BYTE)* LineByteWidth * bih.biHeight)) != NULL)
{
fread(Buffer, LineByteWidth * bih.biHeight, 1, file);
fclose(file);
return 1;
}
fclose(file);
return 0;
}
int GetDIBColor(int X, int Y, BYTE *r, BYTE *g, BYTE *b)
{
int dpixeladd;
BYTE *ptr;
if (X < 0 || X >= bih.biWidth || Y < 0 || Y >= bih.biHeight)
{
return 0;
}
dpixeladd = bih.biBitCount / 8;
ptr = Buffer + X * dpixeladd + (bih.biHeight - 1 - Y) * LineByteWidth;
*b = *ptr;
*g = *(ptr + 1);
*r = *(ptr + 2);
return 1;
}
『玖』 word里怎麼提取圖片里文字的顏色
利用qq的截屏可以查看rgb顏色代碼
『拾』 ps6,怎麼提取圖片的顏色到字體上
利用吸管工具吸取圖片所需顏色,並設置為前景色。把文字選做選區,填充前景色。文字就完成了顏色轉換。